2013-01-24 12 views
11

Sviluppo un'applicazione di una finestra e creo anche un servizio. Avvio il servizio utilizzando la codifica nell'applicazione finestra, ma ricevo un errore come Impossibile aprire il servizio finestra sul computer '.'non può aprire il servizio finestra sul computer '.' nell'applicazione finestra

Ho usato il codice seguente.

ServiceController controller = new ServiceController("SeoMozScheduleService"); 

if (controller.Status == ServiceControllerStatus.Stopped) 
{ 
    controller.Start(); 
} 

Se mi fate clic destro sulla applicazione e fare clic su Esegui come amministratore di quello che funziona bene per me ...

+1

Sarebbe utile se hai postato il messaggio effettivo, non un errore "mi piace" nel messaggio. '' a volte può essere usato per indicare la macchina locale. –

+1

Qual è il messaggio di errore * effettivo *? –

+0

Puoi avviare il servizio normalmente? – PhoenixReborn

risposta

9

Vai a c: // Program Files/ApplicationFolder/.exe Fare clic destro sul .exe e vai su Proprietà, poi vai su Compability Tab e verifica true su Run this Program come livello amministratore.

+8

Non ho abbastanza reputazione per downvote quindi mi limiterò a commentare qui e dire che l'elevazione delle autorizzazioni è mai la soluzione giusta perché i tuoi utenti potrebbero non avere i privilegi di amministratore. – Tsury

+1

Lo eseguo in una console come admin, oltre ai servizi come admin ... e il servizio è stato installato ma non è stato avviato finché non ho impostato quella proprietà. wow, è un sollievo! Grazie! – Jaider

+0

Sono d'accordo Jaider. Esistono diverse situazioni del server in cui gli utenti non sono coinvolti, ma le attività automatizzate vengono eseguite da un singolo utente.Questo fa parte della bellezza dello stackoverflow: risposte multiple, una delle quali può funzionare meglio nel tuo ambiente. – Jeff

3

se si utilizza Visual Studio quindi chiuderlo e ri aperta sudio visiva con eseguirlo come amministratore

15

Per fare questo automaticamente ogni volta che si apre l'applicazione si deve add a manifest file alla soluzione, quindi aggiornare il nodo requestedExecutionLevel all'interno del file a guardare come questo:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
</requestedPrivileges> 

Tuttavia, la modifica di questa impostazione si tradurrà nel sistema che richiede ogni volta per eseguire l'applicazione come amministratore se UAC è abilitato.

+1

Questo non ha funzionato per me. Basta eseguire Visual Studio o l'eseguibile come amministratore per risolvere il problema. –

0

La modifica della versione di framework in app.conf alla versione installata sul sistema ha risolto il problema.

1

Mi sono imbattuto in questo con un'attività pianificata su un server - controllando il "Esegui con i massimi privilegi" risolto. (L'account di servizio deve avere diritti di amministratore per farlo funzionare.)

1

Nessuna di queste soluzioni mi ha aiutato, perché sarebbe di grande aiuto se mi fossi assicurato di avere prima accesso come amministratore sul computer di destinazione! Stavo portando via e restituendo l'accesso come amministratore al mio account principale usando il mio account di amministratore di dominio. Quando eseguivo del codice ServiceController che stava controllando se un servizio era in esecuzione su un computer remoto, sotto l'account amministratore del dominio, tutto andava bene. Quando l'ho fatto come mio account principale, è stato quando non funzionava, anche quando si eseguiva Visual Studio come amministratore. Ho scoperto che stavo testando senza il mio account principale nel gruppo Admin locale ... d'oh!