2013-06-25 3 views
26

ASP.NET 응용 프로그램에서 일부 성능 카운터를 읽으려고합니다. 그러면 "레지스트리 키 '글로벌'에 대한 액세스가 거부되었습니다."라는 오류 메시지가 나타납니다."성능 카운터에 액세스 할 때 'Global'레지스트리 키에 대한 액세스가 거부되었습니다."

내 응용 프로그램 풀을 사용하도록 구성되어 신원이다 사용자 IIS AppPool\DefaultAppPool을 사용하여 설명 herehere 다음 시도는 :

Screenshot of App Pool configuration

내가 추가 한 그 성능 모니터 사용자에 대한 사용자 그룹 :

enter image description here

그리고 사용자를 추가 한 후

, 내 컴퓨터를 다시 시작됩니다. 하지만 여전히 오류가 발생합니다.

또한 IUSR 및 NETWORK 사용자를 Performance Monitor Users 그룹에 추가하려고 시도했지만 이들 역시 작동하지 않습니다. 필사적으로, "Everyone"사용자를 Performance Monitor Users 그룹에 추가하려고 시도했지만 실제로 작동합니다. 하지만 내 목표는 프로덕션 환경의 응용 프로그램에서 통계를 기록하는 것이므로 프로덕션 서버에서 해당 그룹에 "모든 사람"을 추가하고 싶지 않습니다.

보안 예외를 생성하지 않고 성능 카운터를 읽으려면 다른 어떤 조치가 필요합니까?

+0

컴퓨터의 IIS_IUSRS 그룹에 대한 사용 권한을 부여하려고 시도 했습니까? 이는 대개 ApplicationPoolIdentity를 사용할 때 IIS가 실행하는 것입니다. – Josh

답변

42

해결책을 찾았습니다. 인터넷상의 다양한 링크가 ID IIS APPPOOL\DefaultAppPool이라는 정체를 사용한다고 말하면서, 전체 내용이 아닙니다. 사실 만 응용 프로그램을 "DefaultAppPool"이라는 응용 프로그램 풀에 할당하는 경우에만 작동합니다.

This link at ServerFault이 답을 갖고 있습니다. 앱 풀의 이름을 사용해야합니다. 내 경우에는 응용 프로그램 풀의 이름이 "준비 중"이었으므로 올바른 사용자는 IIS APPPOOL\staging입니다. 성능 모니터 사용자 그룹에이 사용자를 배치하면 내 문제가 해결되었습니다.

+8

알아 두어야 할 것은 두 가지입니다. * 아무 것도하지 않거나 앱 풀을 재활용하면 새 권한을 수령하기에 충분하지 않지만 컴퓨터를 다시 시작하지 않아도됩니다. 그래도 iisreset이 그 일을합니다. (필자의 경우 Windows 2012 Server). * 응용 프로그램 풀을 다른 ID로 실행하는 경우 성능 모니터 사용자 그룹에 해당 ID를 추가하면됩니다. 즉, 특별한 IIS APPPOOL 사용자도 추가 할 필요가 없습니다. – sellotape

+1

언급 한 @sellotape는 Windows 2008 R2 – wonster

+0

에 대한 동일한 사례입니다. 참고 : Windows 서비스 ....에서 이것을 사용하고 "Performance Monitor Users"그룹에 사용자를 추가 한 후 서비스를 다시 시작하십시오! – Seabizkit

관련 문제