it-swarm.it

Errore di sistema 5 Accesso negato all'avvio di un servizio .NET

Quando provo ad avviare un servizio che ho creato in Visual Studio, ricevo il seguente errore:

System error 5 has occurred.

Access is denied.

Sto eseguendo la riga di comando con privilegi elevati, quindi non è questo il problema. C'è un posto dove posso guardare per vedere che errore si verifica.

49
Daniel O

Per farlo funzionare avevo bisogno di aggiungere le autorizzazioni alla cartella bin\debug di output per il mio progetto di servizio.

L'account Servizio locale non disponeva delle autorizzazioni per il file .exe di output e questo era il motivo per cui si verificava l'errore.

49
Daniel O

Aveva lo stesso problema. 

Risolto eseguendo il servizio in "Account di sistema locale"

enter image description here

17
Alexander G

Nel mio caso la soluzione era anche così semplice: Esegui prompt dei comandi come administrator .

12
hfrmobile

Vedo che hai risolto il problema; ma in realtà, in genere, non si dovrebbe eseguire il servizio dalla cartella bin di un progetto: i file dovrebbero essere posizionati in qualche parte di progetto e profilo indipendente (ad esempio, sotto i file di programma). Per scopi di debug (quando sarà essere nella cartella bin), è possibile rilevare se si tratta di un servizio in Main(), e se viene eseguito in modo interattivo basta eseguire direttamente il codice del servizio, piuttosto che il solito avvio del servizio impostare.

È possibile rilevare sia aggiungendo un argomento della riga di comando, oppure è possibile provare controllare Environment.UserInteractive.

10
Marc Gravell

L'account Servizi locali non sembra avere il privilegio di controllare un servizio. Pertanto, nella proprietà LogOn del servizio, modificare il tipo di account in Sistema locale e consentire al servizio di interagire con il desktop.

Inoltre, assicurati di installare il servizio utilizzando instalutil come amministratore.

Infine, quando si desidera eseguire un servizio dal comando Prompt utilizzando il comando "net start [nome servizio]", è necessario eseguire il comando Prompt come amministratore.

2
ihayet

Ho avuto lo stesso problema perché il mio progetto e il suo codice sorgente erano in una cartella che aveva il file system crittografato di NTFS ( EFS ) abilitato. Ciò ha causato la crittografia degli assembly compilati e l'utente che esegue il mio servizio non ha le autorizzazioni per decrittografarli. Rimozione di EFS è stata la soluzione facile per questo. Può essere fatto da linea di comando usando CIPHER.EXE, che è uno strumento di Windows.

1
kjellander

Un account utente con diritti di amministratore richiederà "Sei sicuro?" In situazioni in cui l'account dell'amministratore non viene richiesto. Ho avuto questo problema con net stop netprofm.

Per rimuovere il Prompt fai questo.

Pannello di controllo, Account utente, Modifica impostazioni controllo account utente, mai notifica

Questo sembra fornire all'account utente con diritti di amministratore lo stesso comportamento di un account amministratore.

0
Richard Roloff

Ho avuto lo stesso problema quando ho migrato un servizio da vs05 a vs2010, dal framework 2.0 fino al framework 4.0 allo stesso tempo. Ho avuto accesso negato. Non appena una modifica al framework 2.0 ha funzionato di nuovo. Il% ¤ #% e% e il problema era che la stringa di inizializzazione per il servizio era errata (?!). Le virgolette attese all'inizio e alla fine!

Prima .... percorso + nome servizio ""/parametro = 1 "questo aveva funzionato con il framework 2.0

Dopo .... "percorso + nome servizio" "/ parametro = 1"

Accesso negato non ha nulla a che fare con il problema. Perché non "Percorso non trovato" o "parametro mancante"

0
Enrique

Ho appena eseguito questo problema dopo aver eseguito una "sc config" per modificare binPath del servizio.

L'unica correzione che ha funzionato per me era di "sc eliminare" il servizio e installarlo di nuovo.

Le cose hanno funzionato perfettamente dopo.

0
Norman Bentley

Eseguilo dall'Utilità di pianificazione con i massimi privilegi e funzionerà.

0
Matt Averill