2013-06-25 17 views
26

Sto tentando di leggere alcuni contatori delle prestazioni dalla mia applicazione ASP.NET. Quando lo faccio, viene visualizzato l'errore "Accesso alla chiave di registro" Globale "negato.""Accesso alla chiave di registro" Globale "negato" quando si accede ai contatori delle prestazioni

Ho provato seguendo le istruzioni here e here, utilizzando l'utente IIS AppPool\DefaultAppPool, che è l'identità il mio pool di applicazione è configurato per utilizzare:

Screenshot of App Pool configuration

Ho aggiunto che l'utente agli Utenti Performance Monitor gruppo:

enter image description here

E dopo aver aggiunto l'utente, ho riavviato il mio computer. Ma sto ancora ricevendo l'errore.

Ho anche provato ad aggiungere gli utenti IUSR e NETWORK SERVICE al gruppo di utenti di Performance Monitor, ma anche quelli non funzionano. Per disperazione, ho provato ad aggiungere l'utente "Everyone" al gruppo di utenti di Performance Monitor, e questo funziona davvero. Ma il mio obiettivo è quello di registrare le statistiche dalla mia applicazione in produzione, e non voglio aggiungere "Tutti" a quel gruppo sul server di produzione.

Che altro deve accadere per leggere i contatori delle prestazioni senza generare un'eccezione di sicurezza?

+0

Hai provato a concedere autorizzazioni per il gruppo IIS_IUSRS della macchina? Di solito ciò che IIS è in esecuzione quando si utilizza ApplicationPoolIdentity. – Josh

risposta

42

Ho trovato la soluzione. Mentre vari link su Internet ti dicono di usare l'identità IIS APPPOOL\DefaultAppPool, questa NON è la storia completa. Ciò funzionerà solo per se si assegnano le applicazioni a un pool di app denominato "DefaultAppPool".

This link at ServerFault ha la risposta. È necessario utilizzare il nome del pool di app. Nel mio caso, il nome del pool di app era "staging", quindi l'utente corretto era IIS APPPOOL\staging. Mettere questo utente nel gruppo di utenti di Performance Monitor ha corretto il mio problema.

+8

Due cose da aggiungere che ho notato: * non fare nulla o riciclare il pool di app non è sufficiente per raccogliere le nuove autorizzazioni, ma non è necessario riavviare la macchina. Iisreset fa il lavoro, però. (Windows 2012 Server nel mio caso). * se si esegue il pool di app come identità diversa, aggiungendo tale identità al gruppo di utenti di Performance Monitor è tutto ciò che è necessario; Ad esempio, non è necessario aggiungere lo speciale utente APPPOOL IIS. – sellotape

+1

ciò che @sellotape menziona è lo stesso caso per Windows 2008 R2 – wonster

+0

FYI Sto usando questo in un servizio Windows .... e riavviato il servizio dopo aver aggiunto l'utente al gruppo "Utenti di Performance Monitor" ha funzionato! – Seabizkit