Frage

Wie kann ich ServiceController verwenden, um mir mitzuteilen, ob ein Dienst registriert wurde oder nicht? Im folgenden Codefragment führt die Prüfung für einen Null -DisplayName zu einem System. InvalidoperationException.

Gibt es eine einfache Möglichkeit, dies zu tun, die mir völlig fehlt?

ServiceController sc = new ServiceController("TestService");

if (sc.DisplayName == null)
{
     // unregistered or missing service
}
War es hilfreich?

Lösung

Schauen Sie sich die Lösung unten an ... Es scheint nicht, dass Sie ...

Von dem Dokumente:

Sie können die ServicEController -Klasse verwenden, um das Verhalten vorhandener Dienste herzustellen und zu steuern.

Die Liese wie Dienste müssen bereits registriert sein, damit der ServicEController mit ihnen zusammenarbeitet.

Ich denke, Sie könnten einfach die Ausnahme einhalten (was darauf hinweist, dass der Dienst nicht existiert), aber das scheint nicht wirklich außergewöhnlich zu sein, oder?

Lösung:

Verwenden

var services = ServiceController.GetServices(machineName)

und durchsuchen Sie das Array nach Ihren erforderlichen Diensten. Wenn Sie nur an Ihrer örtlichen Box arbeiten, können Sie die weglassen machineName Streit.

http://msdn.microsoft.com/en-us/library/s21fd6th.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top