Einzelnen Beitrag anzeigen

Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#9

Re: Eigener Dienst beendet nicht korrekt...

  Alt 15. Jan 2009, 12:50
Zitat von nahpets:
Hallo,

verschieb mal Deine Methode
Delphi-Quellcode:
procedure TMeinDienst.ServiceShutdown(Sender: TService);
begin
  UpdateUserInfo(Username, false);
  LogFile.LOG(msg0009);
end;
nach
Delphi-Quellcode:
procedure TMeinDienst.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
  UpdateUserInfo(Username, false);
  LogFile.LOG(msg0009);
  Stopped := True;
end;
an dem kanns leider nicht liegen, da ich das schon von anfang an auch dort implementiert habe!

Zitat von Dezipaitor:
ServiceShutdown wird nur aufgerufen, wenn der Dienst von außen beendet werden soll, aber nicht wenn er sich beendet.
In ServiceShutdown musst du deine Prozedur ServiceExecute veranlassen aus der while-Schleife zu springen.
Dann kannst du am Ende von ServiceExecute dein Logging machen.

Es sieht so aus, als ob es nur deshalb manchmal geht, weil Windows deinen Dienst abschießt, da er nicht schnell genug aus ServiceExecute austritt. Ich sehe nämlich garkein Endbedingung.
Das probiere ich gleich mal aus...
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat