Ошибка доступа к реестру при переносе приложения ASP.NET в IIS7 - PullRequest
21 голосов
/ 27 января 2010

Я использую 64-битную Windows 7 и iis7. Я пытаюсь настроить веб-приложение, которое было ранее в iis6 на XP. Это дает мне ошибку ниже. Я добавил пользователя сетевой службы в группу «Пользователи системного монитора», но безрезультатно.

Доступ к разделу реестра «Глобальный» есть отказано. Описание: необработанный исключение произошло во время выполнение текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для более информация об ошибке и где это произошло в коде.

Сведения об исключении: System.UnauthorizedAccessException: Доступ к разделу реестра «Глобальный» есть отказано.

ASP.NET не авторизован для доступа запрашиваемый ресурс. Рассматривать предоставление прав доступа к ресурсу к идентичности запроса ASP.NET. ASP.NET имеет базовый идентификатор процесса (обычно {MACHINE} \ ASPNET на IIS 5 или сетевой службы на IIS 6), то есть используется, если приложение не имитированы. Если приложение выдавая себя за себя, личность будет анонимным пользователем (обычно IUSR_MACHINENAME) или заверенный запрос пользователя.

Чтобы предоставить ASP.NET доступ к файлу, щелкните правой кнопкой мыши файл в проводнике, выберите «Свойства» и выберите Вкладка «Безопасность». Нажмите «Добавить», чтобы добавить соответствующий пользователь или группа. основной момент учетную запись ASP.NET и проверьте ящики для желаемого доступа.

Ответы [ 6 ]

23 голосов
/ 28 января 2010

Проблема в том, что пользователь в Windows известен как DefaultAppPool. Однако он нигде не появляется в диалоговых окнах безопасности. Хотя он реальный пользователь. Моя проблема заключалась в том, что мне нужно, чтобы этот пользователь входил в группу PerformanceMonitorUsers, потому что мой веб-сервис использовал PerformanceCounters. Оказывается, вы должны сделать это из командной строки.

net localgroup "Пользователи системного монитора" DefaultAppPool / add

Иногда это не работает и выдает ошибку: «Нет такого пользователя или группы: DefaultAppPool»

Чтобы добавить пользователя другим способом:

  1. Перейти в меню Пуск в Windows 7.
  2. Введите «Редактировать пользователей» в поле поиска.
  3. Откройте «Редактировать локальных пользователей и группы».
  4. Перейти в папку групп.
  5. Щелкните правой кнопкой мыши группу «Пользователи системного монитора» и перейдите к свойствам.
  6. Нажмите кнопку Добавить ....
  7. Введите «IIS APPPool \ DefaultAppPool» и нажмите «Проверить имена».
  8. Нажмите кнопку ОК, и все будет хорошо.
11 голосов
/ 11 августа 2011

Использовать сетевую локальную группу «Пользователи системного монитора» «IIS AppPool \ DefaultAppPool» / add

1 голос
/ 02 ноября 2012

У меня была та же проблема, и я установил ту же настройку, как описано выше, но она не сработала для меня. Изменения, которые сработали это

  1. Перейти к IIS (inetmgr.exe).
  2. Проверьте настройки приложения AppPool.
  3. Должен быть включен режим управляемого трубопровода.
  4. Идентификационный номер модели процесса должен быть Сетевой сервис.

Это сработало в моем случае. Может быть, это поможет вам, если вышеуказанные настройки не работают.

1 голос
/ 16 ноября 2011

Моя благодарность Fande455

У меня возникла эта проблема после переноса моих веб-приложений. Я действительно ссылаюсь на счетчики производительности в своем приложении и, конечно же, столкнулся с этой проблемой. Для меня это была обычная проблема, и на IIS6, и IIS7 на Windows 7, добавление обычных пользователей IIS в группу пользователей системного монитора решает проблему. Однако на Windows Server 2008 под управлением IIS7 это было не так, и этот пост действительно спас день.

Большое спасибо, я обновил свой оригинальный пост Здесь

0 голосов
/ 04 августа 2011

Просто чтобы добавить к этому ответу, я обнаружил, что мне пришлось несколько раз перезапускать весь сервер, чтобы изменения вступили в силу, перезапуск только службы веб-публикации был недостаточным. Если кто-нибудь знает правильную комбинацию услуг для перезапуска, пожалуйста, добавьте ответ. :)

0 голосов
/ 27 января 2010

В основном вам нужно следовать инструкциям, но посмотрите на конфигурацию вашего пула приложений, вам нужно будет найти учетную запись исполняющего пользователя и предоставить этому пользователю доступ к соответствующим разрешениям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...