2013-06-25 25 views
26

Próbuję odczytać niektóre liczniki wydajności z mojej aplikacji ASP.NET. Kiedy to zrobię, pojawia się błąd "Odmowa dostępu do klucza rejestru" Globalny ".""Dostęp do klucza rejestru" Globalny "jest odmawiany" podczas uzyskiwania dostępu do liczników wydajności

Próbowałem postępując zgodnie z instrukcjami here i here korzystając użytkownikowi IIS AppPool\DefaultAppPool, który jest tożsamość moja aplikacja basen jest skonfigurowany do korzystania z:

Screenshot of App Pool configuration

Dodałem, że użytkownikowi Użytkowników Performance Monitor grupa:

enter image description here

i po dodaniu użytkownika, I ponownym uruchomieniu komputera. Ale wciąż dostaję błąd.

Próbowałem również dodawać użytkowników IUSR i NETWORK SERVICE do grupy Użytkownicy monitora wydajności, ale te też nie działają. Z desperacji próbowałem dodać użytkownika "Wszyscy" do grupy Użytkownicy monitora wydajności i to faktycznie działa. Ale moim celem jest rejestrowanie statystyk z mojej aplikacji w produkcji i nie chcę dodawać "Wszyscy" do tej grupy na serwerze produkcyjnym.

Co jeszcze musi się wydarzyć, aby odczytać liczniki wydajności bez generowania wyjątku zabezpieczeń?

+0

Czy próbowałeś dać uprawnienia dla grupy IIS_IUSRS urządzenia? Zwykle to działa IIS, gdy używasz ApplicationPoolIdentity. – Josh

Odpowiedz

42

Znalazłem rozwiązanie. Podczas gdy różne linki w Internecie mówią o używaniu tożsamości IIS APPPOOL\DefaultAppPool, to NIE jest cała historia. Będzie to działać tylko, jeśli faktycznie przypisujesz swoje aplikacje do puli aplikacji o nazwie "DefaultAppPool".

This link at ServerFault ma odpowiedź. Musisz użyć nazwy puli aplikacji. W moim przypadku nazwa puli aplikacji to "inscenizacja", więc poprawnym użytkownikiem był IIS APPPOOL\staging. Umieszczenie tego użytkownika w grupie Użytkownicy monitora wydajności poprawiło mój problem.

+8

Dwie rzeczy do dodania, które zauważyłem: * nic nie rób lub recykling puli aplikacji nie jest wystarczający do odebrania nowych uprawnień, ale ponowne uruchomienie komputera też nie jest potrzebne. iisreset wykonuje to zadanie. (Windows 2012 Server w moim przypadku). * jeśli uruchamiasz pulę aplikacji jako inną tożsamość, dodanie tej tożsamości do grupy Monitora wydajności jest wszystkim, co jest potrzebne; to znaczy, że nie musisz dodawać specjalnego użytkownika aplikacji IIS APPPOOL. – sellotape

+1

, co wspomniano w @sellotape to ten sam przypadek dla systemu Windows 2008 R2 – wonster

+0

FYI Używam tego w usłudze Windows .... i restartowanie usługi po dodaniu użytkownika do grupy "Użytkownicy monitora wydajności" działało! – Seabizkit