Controllo per un servizio registrato / mancante
-
21-09-2019 - |
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
}
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
.