Stop-service ohne Fehler “der Dienst kann nicht gestartet werden. Das handle ist ungültig"

Habe ich WIndows Service-Anwendung und wollen, um stop-service, wenn Haupt-code ausgeführt wird. Ich versuche zum ausführen von ServiceBase.Stop (), OnStart event, funktioniert auch alles Prima, der service ist gestoppt, aber ich bekomme lästige Fehlermeldung in der Ereignisanzeige

"Service cannot be started. The handle is invalid" 

Irgendwelche Ideen, wie zu stoppen windows-Dienst ohne Fehler?

 public partial class VirtualServerInitService : ServiceBase
    {

        public ILogger EventLogger = new EventLogger();

        public VirtualServerInitService()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {            
            EventLogger.Write("Starting service!");
            new VirtualServerInit(EventLogger).Run();
            EventLogger.Write("VirtualServerInit code was executed");            
            Stop();//This code works and also gives error in event viewer
        }

        protected override void OnStop()
        {
            EventLogger.Write("Stopping service!");
        }
    }
Gerade zurück von der OnStart - Methode und, wenn es keine mehr Vordergrund-threads in den Prozess, der Prozess wird beendet, und der Dienst wird als beendet werden. Es gibt keine Notwendigkeit, rufen Sie Stop.
Ihre OnStart abgeschlossen werden sollten, lassen sich die SCM-wissen, dass Sie erfolgreich gestartet. Dann tun Ihre Arbeit. Ein Dienst sollte nicht 'Stop' - selbst, nachdem die Arbeit getan ist, sollte es sitzen und warten, für mehr Arbeit. Nur aufhören, wenn das SCM fordert Sie auf, zu stoppen.
Den Dienst nicht stoppen automatisch nach der OnStart-code ausgeführt wird!
Es wird, wenn es nicht alle anderen Vordergrund-threads ausgeführt. Das deutet darauf hin, dass VirtualServerInit().Run() ist das erstellen von einem oder mehreren threads, die vermutlich bedeutete, zu bleiben, um für eine Weile, in diesem Fall das abreißen der Dienst wird aufhören, es zu tun, Ihre Arbeit.
aber es wird signalisiert, wie auf den Ausgangszustand (wie das handle wird erstellt, nachdem die OnStart vollständig ausgeführt wurde

InformationsquelleAutor Tomas | 2014-06-09

Schreibe einen Kommentar