Запрошенная страница не может быть доступна, потому что связанные данные конфигурации для страницы недопустимы ошибка - PullRequest
441 голосов
/ 09 февраля 2012

Я хочу загрузить свой собственный сайт asp.net в IIS через IIS manager.Но когда я делаю это, я получаю следующую ошибку

Ошибка HTTP 500.19 - Внутренняя ошибка сервера Невозможно получить доступ к запрошенной странице, поскольку соответствующие данные конфигурации для страницы недействительны

Module  IIS Web Core
Notification    Unknown
Handler Not yet determined
Error Code  0x80070005
Config Error    Cannot read configuration file due to insufficient permissions
Config File \\?\C:\Users\Yasso\Documents\Visual Studio 2008\WebSites\WebSite5\web.config

Я много раз искал решение для этой ошибки, но ни одно из решений не решило ошибку.

У меня проблема с учетной записью IUSR.Я не вижу эту учетную запись в «имени группы или пользователя» в свойствах web.config.

В чем проблема?

Ответы [ 45 ]

598 голосов
/ 22 января 2013

Это также может произойти, если сайт настроен для использования модуля перезаписи URL IIS , но он не установлен.

412 голосов
/ 11 февраля 2012

Наконец , я получил решение для моей проблемы.Учетная запись ASP.net не появилась в диспетчере IIS, потому что я не установил ее флажок в IIS.Чтобы сделать это в Windows 7, выполните следующие действия:

  1. Откройте панель управления
  2. Нажмите ссылку «Программа» (не удалять программы)
  3. Нажмите «Повернуть компоненты Windows»ссылка вкл / выкл
  4. Найдите во всплывающем окне «IIS Internet Information Services» и разверните его узел
  5. Разверните узел «World Wide Web Service»
  6. Разверните «Узлы «Особенности разработки приложений»
  7. Затем нажмите кнопку «ОК»

Теперь вы увидите учетную запись ASP.netв диспетчере IIS и по умолчанию вы увидите учетную запись IIS.Теперь вы должны переместить свой веб-сайт ASP.net из «моего документа» в другое место, где IIS имеет разрешение на доступ к нему (то есть в другой раздел на вашем компьютере).Теперь просмотрите ваш сайт у менеджера IIS, и он должен работать.

Большое спасибо Джеффу Тернеру за решение.

162 голосов
/ 13 мая 2012

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

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

Права доступа должны быть достаточно простыми, то есть, по крайней мере, Чтение , и, в зависимости от вашего приложения, возможно Запись .

Вы выше, выупоминание IUSR и т. д. не указывается в свойствах для web.config.Если вы имеете в виду, что IUSR не указан на вкладке безопасности файла, то это хорошо.Никто не хочет давать IUSR какое-либо разрешение на web.config .Роль IUSR является анонимным пользователем Интернета.

Файл web.config должен только быть доступным через ваше приложение.

Проблема в том, что вы еще не сказали, какую версию ОС и IIS вы используете, поэтому сложно определить, какие шаги предпринять.

Т.е. в IIS 7.5 может появиться сообщение об ошибке, которое вы цитируете.из-за того, что ApplicationPoolIdentity не были назначены разрешения.Ваше веб-приложение относится к пулу приложений, поэтому вам необходимо предоставить разрешения учетной записи ОС, под которой запускается пул приложений вашего веб-приложения.Часто это что-то вроде NetworkService , но вы можете настроить его для работы под специально созданной учетной записью.Без дополнительной информации вам трудно помочь.

51 голосов
/ 25 января 2013

В моем случае установка модуля перезаписи URL IIS решила проблему.

44 голосов
/ 23 января 2014

У меня была та же проблема, вот решение, которое работало для меня.

  1. IIS Manager
  2. Щелкните правой кнопкой мыши на этом веб-сайте
  3. Редактировать разрешения
  4. Добавлен пользователь «IIS_IUSRS» на вкладке «Безопасность»
  5. Предоставить пользователю «IIS_IUSRS» полные права доступа
  6. Установите для идентификатора пула приложений значение «ApplicationPoolIdentity»
38 голосов
/ 11 сентября 2016

Для Разработчики Visual Studio (VS): Как намекают Харви Дарви, Savage и Snives, ваша Конфигурация хоста приложения может указывать на неверный физический путь приложения. Найдите virtualDirectory в /. Vs / config / applicationhost.config , чтобы изменить PhysicalPath , если оно неверно.

enter image description here

Убедитесь, что PhysicalPath указан правильно:

enter image description here

24 голосов
/ 19 сентября 2013

Предупреждение Facepalm:

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

18 голосов
/ 14 августа 2012

Вам необходимо назначить разрешения для IIS_IUSRS на локальном компьютере (но вам не нужно назначать разрешения для IUSR, на самом деле это будет работать, даже если вы явно запретите разрешения).

Чтобы назначить разрешения, просто щелкните правой кнопкой мыши папку и на вкладке безопасности убедитесь, что вы предоставили правильные разрешения, а если пользователя нет в списке, нажмите «ДОБАВИТЬ» и введите IIS_IUSRS (и убедитесь, что в разделе «домен»). "Локальный компьютер выбран или введите в поле имени YourLocalComputerName \ IIS_IUSRS), и тогда вы можете идти.

Если вы хотите, чтобы вместо назначения разрешений группе IIS_IUSRS вы могли вместо этого назначить пулу приложений, который обычно должен быть «IIS APPPOOL \ имя пула приложений ».

9 голосов
/ 18 сентября 2013

То же самое случилось со мной, попробуйте проверить это, дважды щелкнув строки подключения на правой панели IIS 7 при выборе веб-сайта.

Это выдаст вам ошибку (что есть некоторыепроблема с файлом веб-конфигурации), поскольку вы использовали правила перезаписи URL, а соответствующий компонент не установлен.

Установите «Microsoft URL Rewrite Module 2.0 для IIS 7», и это должно решить вашу проблему

8 голосов
/ 20 февраля 2015

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

run->cmd

run "c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i"

Кредит: пользователь Vicxx

...