Estoy tratando de escribir una aplicación y servicio que supervisa un conjunto determinado de servicios y a) se asegura de que se ejecutan yb) en función de ciertos criterios, reinícielos según sea necesario.Servicio de detención/inicio en el código en Windows 7
Me sigue encontrando con un error de acceso denegado.
Si simplemente iterar a través de los procesos en el sistema, encontrar el que quiero de esta manera:
foreach (ServiceController sc in ServiceController.GetServices())
{
if(sc.ServiceName == "MyServiceName")
{
sc.Stop();
sc.WaitForStatus(ServiceControllerStatus.Stopped, new TimeSpan(0, 0, 60));
sc.Start();
}
}
me sale:
InnerException: System.InvalidOperationException
Message="Cannot open My Service service on computer '.'."
Source="System.ServiceProcess"
StackTrace:
at System.ServiceProcess.ServiceController.GetServiceHandle(Int32 desiredAccess)
at System.ServiceProcess.ServiceController.Stop()
at lib.ListServices() in D:\lib.cs:line 552
at lib.Init() in D:\lib.cs:line 56
InnerException: System.ComponentModel.Win32Exception
Message="Access is denied"
ErrorCode=-2147467259
NativeErrorCode=5
InnerException:
he tratado de suplantar a un usuario, no tengo intenté hacer el mismo código desde otro servicio que se ejecuta como un servicio del sistema. Ninguno de los cuales realmente ha podido afectar el servicio. Si comenzó, no puedo detenerlo. Si se detuvo, no puedo iniciarlo. Sé que todo esto está relacionado con los permisos. Simplemente no encuentro un mecanismo que realmente me permita controlar el servicio.
Cualquier ayuda sería muy apreciada.