Domanda

Come posso utilizzare ServiceController a dirmi se un servizio è stato registrato o no? Nel frammento di codice di seguito, il controllo per un nullo DisplayName risultati in una System.InvalidOperationException.

C'è un modo semplice di fare questo che sto completamente manca?

ServiceController sc = new ServiceController("TestService");

if (sc.DisplayName == null)
{
     // unregistered or missing service
}
È stato utile?

Soluzione

Guarda soluzione qui di seguito ... Non sembra che si può ...

docs :

  

È possibile utilizzare il ServiceController   classe per connettersi e controllare la   il comportamento dei servizi esistenti.

che si legge come servizi devono già essere registrati in modo che il ServiceController di lavorare con loro.

Credo che si potrebbe semplicemente intercettare l'eccezione (che indica il servizio non esiste), ma che non sembra essere veramente eccezionale lo fa?

Soluzione:

Usa

var services = ServiceController.GetServices(machineName)

e cercare la matrice per i vostri servizi necessari. Se si sta solo lavorando sulla propria macchina locale, è possibile omettere l'argomento machineName.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top