"Доступ к разделу реестра" Глобальный "запрещен" при доступе к счетчикам производительности
Я пытаюсь прочитать некоторые счетчики производительности из своего приложения ASP.NET. Когда я это сделаю, я получаю сообщение об ошибке "Доступ к разделу реестра" Глобальный "запрещен."
Я пробовал следовать инструкциям здесь и здесь, используя пользователя IIS AppPool\DefaultAppPool
, который является идентификатором моего пула приложений, который настроен на использование:
![Screenshot of App Pool configuration]()
Я добавил этого пользователя в группу пользователей монитора производительности:
![enter image description here]()
И после добавления пользователя я перезапустил свой компьютер. Но я все еще получаю ошибку.
Я также попытался добавить пользователей IUSR и NETWORK SERVICE в группу пользователей монитора производительности, но они тоже не работают. Из отчаяния я попытался добавить пользователя "Everyone" в группу пользователей Monitor Monitor, и это действительно работает. Но моя цель - регистрировать статистику из моего приложения в процессе производства, и я не хочу добавлять "Все" к этой группе на производственном сервере.
Что еще нужно для чтения счетчиков производительности без создания исключения безопасности?
Ответы
Ответ 1
Я нашел решение. В то время как различные ссылки в Интернете говорят вам использовать идентификатор IIS APPPOOL\DefaultAppPool
, это НЕ полная история. Это будет работать, только если вы фактически назначаете свои приложения в пул приложений с именем "DefaultAppPool".
Эта ссылка на ServerFault имеет ответ. Вы должны использовать имя своего пула приложений. В моем случае имя пула приложений было "промежуточным", поэтому правильный пользователь был IIS APPPOOL\staging
. Помещение этого пользователя в группу пользователей монитора производительности устранило мою проблему.