2012-03-26 8 views
1

Ich habe einen Windows-Dienst, der seinen Namen von einer app.config festgelegt hat. habe ich den Namen wie folgt:Doppelte Windows-Dienst, anderer Name und Ort - wird nicht gestartet

Die ServiceBase.SerivceName auf der Service-Klasse Konstruktor gesetzt (ich die Einstellung der Servicename in der Service.Designer entfernt):

ServiceName = ConfigurationManager.AppSettings.Get("ServiceName"); 

Der Serviceinstaller setzt die Displayname und Servicename wie folgt aus:

ServiceInstaller.DisplayName = config.AppSettings.Settings["ServiceName"].Value; 
ServiceInstaller.ServiceName = ServiceInstaller.DisplayName; 

Alle Arbeiten wie erwartet, so dass der Dienst installiert ist neben einem doppelten Service in Ordnung.
Sie haben unterschiedliche Namen und verschiedene Standorte.
Die Einträge erscheinen als separate Einträge in der Liste Dienste.

Aber ich kann nur einen Dienst auf einmal starten. Der Fehler, den ich bekommen zu versuchen, den zweiten Dienst zu starten ist das nicht hilfreich:

The service is not responding to the control function. 

Es gibt 2 Systemereignisse, die protokolliert werden, wenn zu laufen versuchen:

A timeout was reached (30000 milliseconds) while waiting for the Blah Service service to connect. 

The Blah Service service failed to start due to the following error: 
The service did not respond to the start or control request in a timely fashion. 

Jede Hilfe dankbar empfangen.

Danke.

+0

Alles, was im Ereignisprotokoll nützlich ist? Versuchen Sie versehentlich, eine nicht gemeinsam nutzbare Ressource freizugeben? –

+0

Ich habe die Frage bearbeitet und die 2 Systemereignisse hinzugefügt, die protokolliert werden. Da die Dienste von 2 separaten Verzeichnissen installiert werden, denke ich nicht, dass sie irgendwelche Ressourcen teilen. Vielen Dank. –

+0

Ich würde etwas in Ihren OnStart Loggen und sehen, ob es getroffen wird. –

Antwort

2

In Ermangelung von ausreichenden Informationen, um eine Antwort auf das vorliegende Problem zu bieten, empfehle ich die Verwendung http://topshelf-project.com/ - es macht die Installation, Konfiguration und Debugging von Windows-Diensten in .NET ein Kinderspiel.

+0

Beachten Sie, dass TopShelf nicht mehrere Instanzen von Windows-Dienste gemäß ihrer Dokumentation. Aber lass dich nicht davon abhalten. Weitere Informationen finden Sie hier: http://clarify.dovetailaches.com/kmiller/2009/09/24/running-multiple-instances-of-a-windows-service-using-topshelf/ –

Verwandte Themen