Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Serverzugriff aus Service (https://www.delphipraxis.net/100598-serverzugriff-aus-service.html)

Dezipaitor 2. Okt 2007 11:50

Re: Serverzugriff aus Service
 
Wenn der Prozess noch sichtbar ist, kann es sein, dass noch Handles vorhanden sind, die noch etwas Zeit brauchen bis sie geschlossen sind. Z.b. auch Sockets.

Nein du darfst nicht unter SYSTEM laufen! Überprüfe am Anfang der Execute Methode ob GetUserName = 'SYSTEM' ist. Wenn ja, dann breche mit einer Servicefehlermeldung ab. TService hat Möglichkeiten einen Fehlerwert zurückzugeben an den Dienstmanager.
D.h. man muss den Dienst immer als Benutzer ausführen - besser nicht als Administrator.

jjep 2. Okt 2007 13:19

Re: Serverzugriff aus Service
 
Zitat:

Nein du darfst nicht unter SYSTEM laufen!
Mein Service sollte schlussendlich auf einem Server laufen und auch wenn sich kein Benutzer sich angemeldet hat. Also wäre mein Projekt unrealisierbar?

Dezipaitor 2. Okt 2007 13:29

Re: Serverzugriff aus Service
 
Zitat:

Zitat von jjep
Zitat:

Nein du darfst nicht unter SYSTEM laufen!
Mein Service sollte schlussendlich auf einem Server laufen und auch wenn sich kein Benutzer sich angemeldet hat. Also wäre mein Projekt unrealisierbar?

Ich meine, dass du Dienste auch unter anderem Benutzer starten kannst. Im Dienstmanager kann man statt dem Systemdienst auch einen Benutzername und Passwort angeben. Du kannst zwar keine Fenster ausgeben, aber das scheint eh nicht dein Ziel zu sein.
Wenn du dein Dienst unter SYSTEM laufen hast, aber garkeine SYSTEM-Rechte brauchst, dann ist das ein Sicherheitsproblem. Sobald du einen Dienst bereistellst (Datenbank oder so), kann ein Angreifer Fehler in deinem Code womöglich ausnutzen, um den Computer zu hijacken.
Das kannst du verhindern, indem du den Start unter LocalSYSTEM Account verweigerst. Trotzdem startet dein Dienst schon bevor sich jemand einloggt.

jjep 2. Okt 2007 14:07

Re: Serverzugriff aus Service
 
Zitat:

Zitat:
Die Meldung, dass der Dienst angehalten wurde kommt daher, dass deine Execute Methode ja sofort wieder beendet wird. Die Methode ist genau dieselbe, wie eine Threadmethode. Der Thread wird zerstört sobald die End; Zeile abgearbeitet wurde.

Dies ist komisch, denn mein Service bleibt unter den Prozessen im TaskManager.
Das war klar, da der Service auf eine rückmeldung der MsgBox wartete die im Nirvana angezeigt wurde.


Zitat:

Im Dienstmanager kann man statt dem Systemdienst auch einen Benutzername und Passwort angeben.
Das habe ich bereit gemacht. Aber es startet mir den dxs immer noch nicht...
Weiss jemand wie ich dies Zustande brächte?

Danke aber auch für die, die sich bereits für mich die Zeit genommen haben.

jjep 2. Okt 2007 14:41

Re: Serverzugriff aus Service
 
Also so wie es aussieht muss ich ein TComponent weitergeben...
Delphi-Quellcode:
constructor Create(AOwner: TComponent); override;
Das heisst ich komme nicht davon ab, ein TComponent weiterzugeben.
Was soll ich denn weitergeben, da "self" bzw. der Service nicht genug ist?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 Uhr.
Seite 2 von 2     12   

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