c# Nicht beenden windows-Dienst

Ich habe einen Windows-service, der löst einen thread auf OnStart(string[] args). Es gibt andere threads erstellt, die von diesem Haupt-thread. Nach der Installation und dem Start des service, wenn ich versuche, den Dienst zu beenden ich bin nicht in der Lage, den Dienst zu beenden, während der erste Versuch. Wenn ich einen Rechtsklick auf mein service und request 'Stop'. Ich bekomme die folgende Ausnahme ausgelöst und der Dienst noch ausgeführt wird.

Windows konnte nicht aufhören, den Dienst auf dem Lokalen Computer. Der Dienst hat keinen Fehler zurück. Dies kann einen internen windows-Fehler oder einen internen Dienstfehler handeln.
Wenn das problem weiterhin besteht, Kontaktieren Sie Ihren system-administrator.

Wenn ich versuche, ihn zu stoppen wieder, dass ich am Ende mit anderen Nachricht als

Windows konnte nicht aufhören, den Dienst auf dem Lokalen computer.

Fehler 1061: Der Dienst kann nicht akzeptieren, control-Nachrichten in dieser Zeit.

aber der service ist gestoppt. So trete ich mit der rechten Maustaste -> Stop, zweimal um einen Dienst zu stoppen.

Habe ich versucht abzubrechen thread und beenden Sie den Dienst wie unten, aber kein Gewinn.

protected override void OnStop()
{
    onStartThread.Abort();
    Log.AuditEventLogger("Service Stopped");
    this.Stop();
}

Ich sehr zu schätzen, Anregungen. Danke.

  • Aus Interesse, wie beginnst du deinen thread? Ist es ein hintergrund-thread? Wenn nicht, müssen Sie möglicherweise, um es ein - msdn.microsoft.com/en-us/library/...
  • Sehen Sie, wenn diese andere Frage, die Ihnen hilft: stackoverflow.com/questions/4885080/...
  • protected override void OnStart(string[] args) { onStartThread = new Thread(() => DataFeedScheduler.Start()); onStartThread.Priority = ThreadPriority.Normal; onStartThread.Start();}
InformationsquelleAutor Darey | 2014-06-05
Schreibe einen Kommentar