Hallo,
habe mir mal die Anleitung von Luckie vom 28.10.2003 zu Herzen genommen und mein gut funktionierendes Client-Win2000-Programm gemäß Anleitung:
http://www.assarbad.org/stuff/tutorials/ntsvc/
als Dienst umgebaut.
Funktioniert soweit - da
nonVCL - wie immer.
Aber ein Problem kann ich nicht lösen:
--------------------------------------
Beim Scannen des Netzordners N: erhält mein Dienst keinen Datei-Zugriff auf den Server !
Delphi-Quellcode:
procedure SERVICE_MAIN;
Var MsgF : File;
begin repeat
if not paused then
begin if FileExists('N:\Post.Msg') then
begin {=== 1. Benachrichtung ====================}
{=== 2. löschen der Post auf Server =======}
AssignFile(MsgF,'N:\Post.Msg');
{$I-} Erase(MsgF); d_int:=IOresult; {$I+}
end;
end;
until stopped;
end;
Zum Beispiel liefert die Function:
if FileExists('N:\POST.Msg') then {u.s.w}
immer "false" zurück, egal ob die Datei existiert oder nicht.
Außerdem kann das Programm als Dienst weder löschen noch auf dem Netzordner schreiben.
Ich vermute, dass die Rechte nicht stimmen. Habe aber schon die Gruppe "System" sowie "Dienst" und "Netzwerk" am Server freigegeben. Gleiches Resultat !
Wenn ich statt dem Netzordner "N:\" Laufwerk C:\ (lokal) angebe funktioniert es wieder! Genauso wie vorher als Programm und nicht als Dienst !
Welche Rechte sind da auf dem Server oder im Dienst frei zu geben ?