Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehlende Dateirechte für Netzordner bei Programm als Service (https://www.delphipraxis.net/13245-fehlende-dateirechte-fuer-netzordner-bei-programm-als-service.html)

delphin 14. Dez 2003 17:30


Fehlende Dateirechte für Netzordner bei Programm als Service
 
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:
Delphi-Quellcode:
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 ?

PeterRettig 14. Dez 2003 19:28

Re: Fehlende Dateirechte für Netzordner bei Programm als Ser
 
Hallo,

ich vermute einmal viel mehr, dass es das Laufwerk
N: für deinen Dienst garnicht gibt! Da das Laufwerk
nur für den gerade angemeldeten Benutzer gemappt wird/wurde.

Versuche stattdessen Zugriffe in der Art:
\\Servername\Freigabe\Pfad\Datei.Endung

Ciao Peter

delphin 14. Dez 2003 19:40

Re: Fehlende Dateirechte für Netzordner bei Programm als Ser
 
Zitat:

Versuche stattdessen Zugriffe in der Art:
\\Servername\Freigabe\Pfad\Datei.Endung
kann ich nicht nachvollziehen !

Das Netzlaufwerk N:\ ist für jeden (Nutzer) zugänglich und wurde gemappt mit

net use N: \\Servername\Freigabe_Name

der Zugriff der Art:
Delphi-Quellcode:
if FileExists('N:\POST.Msg') then {u.s.w}
funktioniert im Programm (nicht als Dienst) ohne Probleme !

Wo soll denn Deine Anweisung
Zitat:

\\Servername\Freigabe\Pfad\Datei.Endung
eingebaut werden ?

Schon beim Mapping ?

PeterRettig 15. Dez 2003 09:24

Re: Fehlende Dateirechte für Netzordner bei Programm als Ser
 
Hallo,

Befehle in der Art "net use ...." wirken sich nur auf den
momentan angemeldeten Benutzer aus, dein Dienst läuft in
einer anderen Nutzersession.
Benutze folgenden Code:
(Annahme der Server auf dem N: gemappt wird heisst Server_1
die Freigabe heisst Daten)

Delphi-Quellcode:
if FileExists('\\Server_1\Daten\POST.Msg') then {u.s.w.}
Um den genauen Dateiname herauszufinden rufe als Benutzer mit
gemapptem Laufwerk N: (nicht als Dienst) die Funktion:

Delphi-Quellcode:
showmessage(ExpandUNCFileName('N:\POST.Msg'));
auf.

Ciao Peter


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz