Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Service lässt sich plötzlich nicht mehr dauerhaft starten (https://www.delphipraxis.net/107357-service-laesst-sich-ploetzlich-nicht-mehr-dauerhaft-starten.html)

r29d43 26. Jan 2008 13:52


Service lässt sich plötzlich nicht mehr dauerhaft starten
 
Hi,

bei meiner Serviceanwendung, an der ich dieses Service-Thema gerade etwas auskundschaften möchte, lässt sich auf einmal der Service nicht mehr starten, bzw. beendet immer wieder sofort. :wall: :wall: :wall: :wall: :wall:
Die ganze Zeit davor funktionierte es allerdings ganz normal! Normalerweise startet der Service beim Installieren selbst, mittels eines Servicemanagers, nur eben jetzt leider nicht mehr. Aber auch manuell, über Systemsteuerung>Verwaltung>Dienste, lässt sich der Service nicht mehr starten. Versuche ich letzteres, dann taucht stattdessen immer nur ein Info-Window mit folgendem Inhalt auf:

Zitat:

---------------------------
Dienste
---------------------------
Dienst "Service1" wurde auf "Lokaler Computer" gestartet und dann angehalten. Einige Dienste werden automatisch angehalten, wenn sie sich im Leerlauf befindet, wie z. B. Leistungsprotokoll- und Alarmdienste.
---------------------------
OK
---------------------------
Wenn ich mir über Systemsteuerung>Verwaltung>Dienste mit der rechten Maustaste die Eigenschaften des Dienstes ansehen, dann steht da: Dienststatus: Beendet

Diesbezüglich habe ich im Objektinspektor auch mal die Properties 'allowPause' und 'allowStop' auf False gesetzt – aber leider ohne Erfolg.


Vielleicht noch etwas grundsätzliches zum Service selbst, welchen ich ursprünglich von hier abgeleitet habe. Die eigentliche Arbeit, die der Service tätigen soll, ist, auf WindowMessages (WM_WTSSESSION_CHANGE) des Systems zu warten und diese dann in einer WndProc (per AllocateHWnd installiert) darauf zu reagieren. Das alles hat ja bisher auch gut geklappt, nur, wie gesagt, jetzt ist der Service nach einem jeweiligen Installieren leider nicht mehr zu starten bzw. am Laufen zu halten.

In der eigentliche "ServiceExecute"-Methode steht dabei nur noch mehr dieser Mini-Code:

Delphi-Quellcode:
while not Terminated do
begin
  ServiceThread.ProcessRequests(true); // mit "true" ist's das gleiche
end;


Hat da event. irgendjemand eine Idee woran das liegen könnte???



Thx schonmal im Voraus

r29d43 26. Jan 2008 16:48

Re: Service lässt sich plötzlich nicht mehr dauerhaft starte
 
Ok, ich habe den Fehler zwischenzeitlich durch einen schrittweisen Rückbau des Codes selbst identifiziert und gelöst.


Verursacht wurde das Ganze durch eine Stringliste, die nach ihrer Erzeugung einen (noch) nicht vorhandenen Textfile laden sollte. (Existierte diese Textfile schon, dann kam es zu keinen Problemen -> der Service startete normal dauerhaft).

Abhilfe: das AStringList.LoadFromFile(...) in try & except einkleiden und danach lief wieder alles normal.


Trotzdem Dank für die werte Aufmerksamkeit,

..und event. hat irgendjemand ja mal das gleiche Problem.


PS.
oder kleidet man "AStringList.LoadFromFile(...)" sowieso immer in try & except? Nee, oder? :mrgreen: :mrgreen: :mrgreen:

Christian Seehase 26. Jan 2008 17:36

Re: Service lässt sich plötzlich nicht mehr dauerhaft starte
 
Zitat:

Zitat von r29d43
Abhilfe: das AStringList.LoadFromFile(...) in try & except einkleiden und danach lief wieder alles normal.

Diese Abhilfe finde ich jetzt nicht so prickelnd ;-)

Zitat:

Zitat von r29d43
PS.
oder kleidet man "AStringList.LoadFromFile(...)" sowieso immer in try & except? Nee, oder? :mrgreen: :mrgreen: :mrgreen:

Nein, man prüft vorher, ob die Datei exisistiert (FileExist), und lädt sie nur, wenn das der Fall ist... :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:14 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 by Thomas Breitkreuz