![]() |
Dienst bringt "Zugriff verweigert" beim Herunterfa
Ich habe ein Problem beim Debuggen eines Dienstes.
Das Beenden / Neustarten des Dienstes funktiontert im laufenden Betrieb immer fehlerfrei. Nur beim Herunterfahren / Neustarten von Windows (mit gestartetem Dienst) erhalte ich oft eine Fehlermeldung "Systemfehler 5 , Zugriff verweigert". Der Dienst läuft unterm lokalen Systemkonto. Er hat ein TForm, das beim Dienststart erzeugt wird, und das interaktiv unter dem jeweils angemeldeten Benutzer eingeblendet wird. Der Fehler ist derb schwehr zu finden, da er nur beim Herunterfahren des Systems auftritt. Hat jemand dazu eine Idee ? Hier der Code der Ereignisbehandlungsroutinen "TService.OnStop" und "TMain.OnDestroy". Code im OnStop des Dienstes
Delphi-Quellcode:
procedure TCsService.ServiceStop(Sender: TService;
var Stopped: Boolean); begin service.stopped := true; beep(); if assigned(mainform.Main) then begin mainform.Main.ServiceStopped := true; mainform.Main.LEDStateTimer.Enabled := false; end; sleep(800); end; Code im OnDestroy des "Mainforms"
Delphi-Quellcode:
procedure Tmain.FormDestroy(Sender: TObject);
var i: integer; begin for i := 0 to aThreads.count - 1 do TWorkerThread(aThreads[i]).Terminate; aJobList.Finalize(athreads.count); while aThreads.Count > 0 do begin with TWorkerThread(aThreads[0]) do begin WaitFor; Free; end; aThreads.Delete(0); end; aThreads.Free; aJoblist.Clear; aJobList.Free; end; Schöne Grüße, Jens :hi: |
Re: Dienst bringt "Zugriff verweigert" beim Herunt
Und was macht der Dienst?
|
Re: Dienst bringt "Zugriff verweigert" beim Herunt
Er ruft in Intervallen ein paar PC's über ISDN an, und holt von dort Informationen ab.
Die "Jobsteuerung" ist auf ![]() Wenn ein Thread läuft, schreibt er die abgeholten Informationen in eine DB und trennt dann die IDSN Verbindung. Leider kann man den Fehler daran nicht festmachen. Er triff auch auf, wenn alle Threads "schlafen", also auf das Hinzufügen neuer Jobs warten. Der Dienst macht also ausser einem WaitForSingleObject pro Thread nichts. "Leider" kommt der Fehler nicht generell, so das man ihn mit Auskommentieren von Codepassagen lokalisieren könnte. Die Wahrscheinlichkeit, das Windows beim Heruntrfahren "meckert", liegt bei 10 bis 20%. Schöne Grüße, Jens :hi: |
Re: Dienst bringt "Zugriff verweigert" beim Herunt
Hat noch Jemand eine konstruktive Idee ?
*Push* :???: |
Re: Dienst bringt "Zugriff verweigert" beim Herunt
Ein Versuch noch ...
*push* :zwinker: Ich habe dem Fehler noch nicht gefunden. Wer oder was kann dem lokalen Systemkonto beim Herunterfahren von Windows den Zugriff verweigern, oder anders gefragt... Was müsste das Systemkonto beim Beenden eines Dienstes und bei herunterfahrendem Windows versuchen, damit ein Fehler "Zugriff verweigert" ausgelöst werden kann ? Hat da wirklich niemand eine Idee ? Schöne Grüße, Jens :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 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