Ошибка доступа к реестру при перенастройке приложения ASP.NET в IIS7
Я запускаю Windows 7 64-bit и iis7. Я пытаюсь настроить веб-приложение, ранее существовавшее в iis6 на XP. Это дает мне ошибку ниже. Я добавил пользователя сетевой службы в группу пользователей монитора производительности безрезультатно.
Доступ к разделу реестра "Глобальный" отказано. Описание: необработанный исключение произошло во время выполнение текущего веб-запроса. Просмотрите трассировку стека информацию об ошибке и он возник из кода.
Сведения об исключении: System.UnauthorizedAccessException: Доступ к разделу реестра "Глобальный" отказано.
ASP.NET не имеет права доступа запрошенный ресурс. Рассматривать предоставление прав доступа к ресурсу к идентификатору запроса ASP.NET. ASP.NET имеет базовый идентификатор процесса (обычно {MACHINE}\ASPNET на IIS 5 или сетевой службы на IIS 6), используется, если приложение не имитированы. Если приложение выдавать себя за личность будет анонимным пользователем (обычно IUSR_MACHINENAME) или аутентифицированный запросить пользователя.
Чтобы предоставить ASP.NET доступ к файлу, щелкните правой кнопкой мыши файл в проводнике, выберите "Свойства" и выберите Вкладка "Безопасность". Нажмите "Добавить", чтобы добавить соответствующего пользователя или группы. основной момент учетной записи ASP.NET, и проверьте коробки для желаемого доступа.
Ответы
Ответ 1
Проблема в том, что пользователь в Windows известен как DefaultAppPool. Однако он не появляется нигде в диалоговом окне безопасности. Однако он настоящий пользователь. Моя проблема заключалась в том, что мне нужен был этот пользователь, чтобы быть частью группы PerformanceMonitorUsers, потому что мой веб-сервис использовал PerformanceCounters. Оказывается, вам нужно сделать это из командной строки.
net localgroup "Пользователи монитора производительности" DefaultAppPool/add
Иногда это не работает, и это даст вам ошибку: "Нет такого пользователя или группы: DefaultAppPool"
Чтобы добавить пользователя другим способом:
- Перейдите в меню "Пуск" в Windows 7.
- В поле поиска введите "Редактировать пользователей".
- Откройте "Редактировать локальные пользователи и группы".
- Перейдите в папку групп.
- Щелкните правой кнопкой мыши группу "Пользователи монитора производительности" и перейдите к свойствам.
- Нажмите кнопку "Добавить".
- Введите "IIS APPPool\DefaultAppPool" и нажмите "Проверить имена".
- Нажмите "ОК", и вам будет хорошо идти.
Ответ 2
Использовать сетевую локальную группу "Пользователи монитора производительности" "IIS AppPool\DefaultAppPool" /добавить
Ответ 3
Спасибо Fande455
У меня возникла эта проблема после переноса моих веб-приложений. Я действительно ссылаюсь на счетчики производительности в своем приложении, и, конечно же, я столкнулся с этой проблемой. Для меня это была обычная проблема, а на IIS6 и IIS7 в Windows 7 добавление обычных пользователей IIS в группу пользователей монитора производительности решает проблему. Однако на сервере Windows 2008 с запуском IIS7 это было не так, и этот пост действительно спас день.
Большое спасибо, я обновил свой оригинальный пост Здесь
Ответ 4
У меня была такая же проблема, и я сделал ту же настройку, что и обсуждалось выше, но для меня это не сработало.
Изменения, которые работали, были
- Перейдите в IIS (inetmgr.exe).
- Проверьте настройки приложения AppPool.
- Управляемый режим PipeLine должен быть интегрирован.
- Идентификация модели процесса должна быть сетевой службой.
Это сработало в моем случае. Может быть, это поможет вам, если выше настройка не работает.
Ответ 5
В основном вам необходимо следовать инструкциям, но посмотрите на конфигурацию пула приложений, вам нужно будет найти исполняемую учетную запись пользователя и предоставить этому пользователю доступ к соответствующим разрешениям.
Ответ 6
Чтобы добавить к этому ответу, я несколько раз обнаружил, что мне пришлось перезапустить весь сервер, чтобы изменения вступили в силу, перезапуск службы веб-публикации был недостаточным. Если кто-то знает правильную комбинацию сервисов для перезагрузки, добавьте ответ.:)