Ho un'applicazione che consiste in un servizio e un eseguibile. Essenzialmente è un'applicazione di moduli che è responsabile per l'avvio e l'arresto di un servizio in circostanze specifiche.Autorizzazioni di ServiceController in Windows 7
In Windows XP l'applicazione gestisce questo bel utilizzando il seguente codice:
ServiceController controller = new ServiceController();
controller.MachineName = ".";
controller.ServiceName = "XXXXXXXXXX";
controller.Stop();
controller.WaitForStatus(ServiceControllerStatus.Stopped, new TimeSpan(0, 0, 10));
controller.Start();
Ma su Windows 7, anche se ho iniziato l'applicazione come amministratore, ottengo la seguente eccezione:
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()
C'è qualcosa che posso fare a livello di codice per risolvere questo?
Mi dispiace essere un pazzo: uso una scorciatoia per lanciare e ho impostato su una delle mie macchine di prova per questo collegamento da eseguire come amministratore (e viene richiesto UAC) ma sulla macchina stavo ottenendo questa eccezione che non avevo t ha modificato la scorciatoia in modo appropriato. –