Comprobación de un servicio no registrada / faltante
-
21-09-2019 - |
Pregunta
¿Cómo puedo utilizar ServiceController decirme si un servicio ha sido registrado o no? En el fragmento de código siguiente, el cheque por un valor nulo idioma resultado en un System.InvalidOperationException.
¿Hay una manera sencilla de hacer esto que estoy completamente perdido?
ServiceController sc = new ServiceController("TestService");
if (sc.DisplayName == null)
{
// unregistered or missing service
}
Solución
Mira la solución por debajo ... No parece que pueda ...
Desde el docs :
Puede utilizar el ServiceController clase para conectar y controlar la comportamiento de los servicios existentes.
Lo que se lee como los servicios que ya deben estar registrados para que el ServiceController para trabajar con ellos.
Creo que simplemente podría detectar la excepción (que indica el servicio no existe), pero eso no parece ser realmente excepcional lo hace?
Solución:
Uso
var services = ServiceController.GetServices(machineName)
y buscar la matriz para sus servicios necesarios. Si acaba de trabajar en su local de la caja se puede omitir el argumento machineName
.