Tengo una aplicación que consta de un servicio y un ejecutable. Básicamente, es una aplicación de formularios que se encarga de iniciar y detener un servicio en circunstancias específicas.Permisos de ServiceController en Windows 7
En Windows XP la aplicación gestiona esta muy bien usar el siguiente código:
ServiceController controller = new ServiceController();
controller.MachineName = ".";
controller.ServiceName = "XXXXXXXXXX";
controller.Stop();
controller.WaitForStatus(ServiceControllerStatus.Stopped, new TimeSpan(0, 0, 10));
controller.Start();
Pero en Windows 7, a pesar de que he comenzado la aplicación como administrador, me sale el siguiente excepción:
System.InvalidOperationException: Cannot open XXXXXXXXXXXXX service on computer '.'. ---> System.ComponentModel.Win32Exception: Access is denied
--- End of inner exception stack trace ---
at System.ServiceProcess.ServiceController.GetServiceHandle(Int32 desiredAccess)
at System.ServiceProcess.ServiceController.Start(String[] args)
at System.ServiceProcess.ServiceController.Start()
¿Hay algo que pueda hacer programáticamente para resolver esto?
Lo siento fue ser un tonto: uso un acceso directo para iniciar y configuré en una de mis máquinas de prueba para que este acceso directo se ejecute como administrador (y se me solicitó UAC) pero en la máquina recibí esta excepción que no había t modificó el atajo de manera apropiada. –