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

413

Я хочу загрузить свой собственный сайт 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.

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

  • 3
    У меня была эта проблема после отмены некоторых изменений через Subversion (хотя это могло быть совпадением). Я заметил, что ACL файла Web.config отличаются от других файлов в каталоге и не наследуются от его родителя . Я включил наследование ACL и все вернулось на круги своя.
  • 1
    Мое решение было немного другим. На некоторых компьютерах с Windows Server 2008 необходимо предоставить доступ к группе «IIS_IUSRS», а не пользователю «IUSR», в рамках разрешений безопасности папки сайта. Обязательно зайдите на место вашей машины.
Показать ещё 6 комментариев
Теги:
iis-7
iis-manager

44 ответа

156
Лучший ответ

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

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

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

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

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

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

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

  • 3
    Могу ли я дать это разрешение программно? Пожалуйста помоги. У меня такая же проблема.
  • 1
    Спасибо, это решило и мою проблему. Я использую олицетворение, которое, по-видимому, делает необходимым присваивать разрешения READ каталогу приложения для олицетворенной учетной записи.
Показать ещё 5 комментариев
550

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

  • 0
    Это было для меня .. удалили раздел перезаписи (который на самом деле не нужен), и все хорошо.
  • 9
    Никогда бы не догадался. Спасли день !!!
Показать ещё 9 комментариев
407

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

  1. Открыть панель управления
  2. Нажмите на ссылку "программа" (не удалять программы)
  3. Нажмите на ссылку "Включить/выключить Windows"
  4. Найдите "IIS служб Интернета" во всплывающем окне и разверните его узел.
  5. Разверните узел "Всемирная паутина"
  6. Разверните узел "Функции разработки приложений"
  7. Установите флажок "ASP.NET"
  8. Затем нажмите кнопку ОК

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

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

  • 6
    Решил и мою тоже. IIS 8, сайт MVC 4.
  • 0
    Кто-то, должно быть, удалил эту службу роли с сервера, который работал месяцами. Я бы никогда не догадался проверить это дважды. Тьфу.
Показать ещё 6 комментариев
51

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

  • 0
    Спасибо за предложение, я сегодня сошел с ума ...
  • 0
    это я напоминаю себе в следующий раз, что это то, что исправило это для меня. какая ужасная ошибка: - /
Показать ещё 1 комментарий
37

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

  1. IIS Manager
  2. Щелкните правой кнопкой мыши на этом сайте
  3. Изменить разрешения
  4. Добавлен пользователь 'IIS_IUSRS' на вкладке Безопасность
  5. Предоставил полные права доступа пользователю 'IIS_IUSRS'
  6. Установите для идентификатора пула приложений значение "ApplicationPoolIdentity"
  • 5
    Ваш 1-5 исправил это для меня. Спасибо, Сухдев_Зала
  • 2
    То же самое для меня, ваш 1-5 исправил это для меня.
Показать ещё 4 комментария
32

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

Изображение 5904

Убедитесь, что физический_пакет верен:

Изображение 5905

  • 3
    Вы также можете сделать то же самое в project => properties => project url => создать виртуальный каталог, выбрать да, чтобы отобразить правильный физический путь при появлении запроса
  • 0
    В моем случае это было немного по-другому, но это дало мне направление, большое спасибо, оно мне очень помогло :)
Показать ещё 2 комментария
21

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

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

  • 0
    Как вариант, оказывается, что я неправильно указал путь к самому сайту. Я случайно прошел через сопоставленный сетевой ресурс вместо пути к локальному системному файлу.
  • 1
    Был тот же самый момент лица ладони. Я переместил свой веб-сайт в подпапку и подумал, что правильно ввел новый путь в IIS. На сайте все еще есть все необходимые папки и т. Д., Отображаемые в дереве в IIS, поэтому причина этого не была вызвана. Я сбросил разрешения и т.д., но не решил. Тогда, обсуждая проблему, она была предложена мне мимоходом ... и теперь у меня снова есть рабочий сайт после 1 часа потраченного времени!
Показать ещё 3 комментария
18

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

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

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

  • 0
    На мой взгляд, ваш ответ является правильным и лучшим на основе вопроса.
  • 0
    Со следующего веб-сайта: iis.net/learn/get-started/planning-for-security/… Группа IIS_IUSRS заменяет группу IIS_WPG. Эта встроенная группа имеет доступ ко всем необходимым файловым и системным ресурсам, поэтому учетная запись при добавлении в эту группу может беспрепятственно действовать как удостоверение пула приложений.
Показать ещё 1 комментарий
9

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

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

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

  • 0
    БЛАГОДАРЮ ВАС! У меня была эта проблема в течение двух дней, не находя решения из-за очень многих ответов выше этого ...
8

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

run->cmd

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

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

  • 0
    Спасибо; У меня это тоже сработало :-)
  • 0
    Нет проблем рад, что это сработало :)
Показать ещё 1 комментарий
6

Еще одна возможность, которая устранила эту проблему для меня:

IIS → Разрешения прав → Вкладка "Безопасность" → Предоставить "Пользователи" соответствующие разрешения (или IIS_IUSRS, в зависимости от вашей настройки)

5

Я делаю эти шаги для решения этой проблемы в Windows Server 2012, IIS 8.5. Должен работать и для других версий.

  • Перейдите к диспетчеру сервера, нажмите добавить роли и функции.
  • В разделе ролей выберите: Web Server
  • В разделе "Безопасность" выберите все (я исключил дайджест, ограничения IP и авторизацию URL, поскольку мы их не используем)
  • В разделе "Разработка приложений" выберите .NET Extensibility 4.5, ASP.NET 4.5 и обе записи ISAPI
  • В разделе функций выберите: NET 3.5, .NET 4.5, ASP.NET 4.5
  • В разделе веб-сервера выберите: Web Server (все), Management Tools (IIS Management Console и Management Service), Windows
  • 0
    очень хорошо, это сработало для меня, как раз когда я собирался сдаться :)
5

Убедитесь, что у пула приложений установлена правильная версия фреймворка. Вам также необходимо убедиться, что пользователи aspnet, IIS_IUSRS или IUSR имеют доступ для чтения к каталогу приложения.

  • 0
    Как я могу это сделать?? «убедитесь, что ваши пользователи aspnet или IUSR имеют доступ на чтение к каталогу приложения»
  • 5
    перейдите в C: \ Users \ Yasso \ Documents \ Visual Studio 2008 \ WebSites \ WebSite5 \ и убедитесь, что каталог WebSite5 имеет разрешения на чтение для групп IUSR и IIS_IUSRS. Это можно сделать, щелкнув правой кнопкой мыши по каталогу и выбрав свойства, а затем перейдя на вкладку безопасности.
Показать ещё 6 комментариев
4

Эмм. Я переместил свой сайт/файлы в другую папку. Без изменения пути на веб-сайте IIS.

Теперь вы можете все рассмеяться.

4

Иногда в этом сообщении могут отсутствовать компоненты в среде IIS, например. конкретную структуру или функцию IIS, такую ​​как динамическое сжатие, а не разрешения для web.config.

Если это так, решение может заключаться в установке и использовании установщика Microsoft Platform Installer и установке этих отсутствующих компонентов - вам может потребоваться нанести удар по тому, что точно отсутствует, поскольку журнал ошибок и сообщение не сообщают вам.

  • 0
    Примечание: динамическое сжатие находится в списке «возможностей Windows», а не MPI.
  • 0
    @Simon_Weaver фактически динамическое сжатие находится в списке вещей, которые MPI установит для вас, и было с 2012 года, возможно, даже до этого. веселит.
4

Это также случилось со мной, когда у меня был документ по умолчанию с тем же именем (например index.aspx), указанный в обоих файлах web.config И на моем веб-сайте IIS. Я закончил удаление записи с веб-сайта IIS и сохранил запись в web.config, как показано ниже:

<system.webServer>
  <defaultDocument>
    <files>
      <add value="index.aspx" />
    </files>
  </defaultDocument>...
3

У меня возникла проблема, когда я скопировал файл web.config с prod, изменил все, не связанные с prod, за исключением правил перезаписи, которые были переписаны на http S.

Удалены эти правила и выполняются нормально.

3

В моем случае это вызвало физический путь приложения к несуществующей папке в IIS.

Изображение 5906

3

Вам нужно установить разрешение на папку своего сайта или скопировать их в папку wwwroot:)  - Если установлено разрешение, у вас есть 2 способа:  + Щелкните правой кнопкой мыши на папку вашего сайта  + Или щелкните правой кнопкой мыши на свой сайт в IIS  = > выберите "Изменить разрешение" и "Добавить разрешение" (IUSR - пользователь iis по умолчанию) Удачи, -)

  • 0
    В моем случае - iis 8, это были Аутентифицированные пользователи.
2

Исследуйте папку, в которой находится ваш веб-сайт, и увидите, что вы получите одну дополнительную папку "aspnet_client", которая удалит эту папку, и она будет работать для вас.

Я попытался решить эту проблему.

Если это сработает для вас, сделайте это как ответ, чтобы кто-то другой также получил решение.

2

возникла проблема с подключенными дисками, IIS не работает с подключенными дисками. Просто используйте unmapped диск.

2

Вы можете получить эту ошибку, если у вас есть синтаксическая ошибка или проблема в файле web.config.

Для меня это был бесстрашный амперсанд в URL, который я использовал в AppSettings.

  • 0
    Я также получил это с паролем в строке подключения, который имел & - кодирование в & amp; избавил меня от этой проблемы. Спасибо, это единственный ответ, который не нужно делать с разрешениями.
2

У меня тоже была аналогичная проблема, и я исправил ее, комментируя некоторые разделы в файле web.config.

Проект был ранее построен и развернут в .Net 2.0. После перехода на .Net 3.5 он начал выдавать исключение.

Решение:

Если ваш файл конфигурации содержит "< sectionGroup name=" system.web.extensions > ", прокомментируйте его и запустите, поскольку этот раздел уже доступен в Machine.config.

2

Довольно прямо, IIS не имеет доступа к вашему web.config. Я бы начал с того, что вытащил сайт из папки с вашими документами. Убедитесь, что он имеет r/w разрешения, а затем.

  • 0
    Я перемещаю сайт из Документа в другое место, но появляется та же ошибка
1

Я решил решить эту проблему, удалив папку obj моего веб-приложения. После восстановления решения проблема исчезла.

1

Для меня я получал последние данные от источника управления, и это произошло.

Путь виртуального каталога файла applicationhost.config отличается от моего компьютера.

Я восстановил свою собственную копию, и она работает. Я использую экспресс-службу IIS.

Изображение 5907

1

В моем случае configSections должен быть наверху в конфигурации

<configuration>
<configSections>
...
</configSections>
<othersetting>
</othersetting>
.....
1

В моем случае он просто комментирует (или удаляет) свойство anonymousAuthentication:

 <security>
     <authentication>
         <!--<anonymousAuthentication enabled="true" />-->
     </authentication>
 </security>
1

Добавить локальную учетную запись IIS_IUSRS в систему безопасности и расширить доступ к ней для чтения/выполнения. это работает по моему делу.

1

На странице ошибки IIS 7.5 вы получите ссылку "Просмотреть дополнительную информацию" внизу страницы, и в этом случае она перейдет к следующей ссылке Microsoft:

http://support.microsoft.com/kb/942055

Код ошибки 0x80070005, по-видимому, относится к разрешениям и соответствует шагам в Резолюции 2, метод 2, определяющий правильные учетные записи с разрешениями для соответствующих папок, должен исправить это - я потратил 3 дня на поиск решения, пока не наткнулся на него, работал сразу после.

0

Просто для того, чтобы сделать это, я получил такую же ошибку, и моя проблема была довольно простой: мне не хватало .NET Core Hosting Bundle. После того, как я установил инструмент и перезапустил сервер, все было в порядке.

Вы можете найти руководство по размещению ядра asp.net в Windows здесь: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2

0

Я получал эту ошибку при запуске моего проекта с моего локального компьютера с использованием Visual Studio 2017

Ни одно из этих решений не помогло мне. В конце концов, исправление, которое работало для меня, было следующим:

  1. Щелкните правой кнопкой мыши по проекту → Свойства → Интернет → URL проекта
  2. В текстовом поле URL проекта я увеличил номер порта на один, а затем нажал кнопку "Создать виртуальный каталог".
  3. Сохраните изменения и запустите проект снова.
0

Проверьте код ошибки /HResult и следуйте этому руководству:

0x80070005

Эта проблема возникает по одной из следующих причин:

  • Вы используете IIS 7.0 на компьютере под управлением Windows Vista. Кроме того, вы настраиваете веб-сайт для использования сквозной аутентификации UNC для доступа к удаленному общему ресурсу Universal Naming Convention (UNC).

Группа IIS_IUSRS не имеет соответствующих разрешений для файла ApplicationHost.config, для файла Web.config или для виртуальных каталогов/каталогов приложений IIS.

Решение

Способ 1

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

Способ 2 (скорее всего)

Предоставьте разрешение на IIS_IUSRS группе IIS_IUSRS для файла ApplicationHost.config или для файла Web.config.

Итак, простыми словами, вам нужно:

  1. Откройте Свойства папки, содержащей ваш сообщенный файл конфигурации (например, Web.config).
  2. На вкладке "Безопасность" IIS_IUSRS... и добавьте...: группа IIS_IUSRS и подтвердите.
0

В моем случае я только что запустил визуальную студию в режиме администратора.

0

Я изменил свой файл web.config, чтобы обеспечить фактический путь, чем относительный.

<httpPlatform processPath="F:\Projects\.....
instead of 
<httpPlatform processPath="..\approot\web.cmd"
0

Я получил эту странную ошибку после указания значений в web.config на следующем пути system.webServer\security\authentication

Мы предпочитаем управлять настройкой IIS с помощью web.config, так как IIS является ужасным продуктом и трудно настраивается с использованием других методов.

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

Конфигурация аутентификации может быть разблокирована с помощью апплета делегирования функций на уровне IIS Server, установив Read/Write.

Конечно, если раньше мы должны были автоматизировать конфигурацию типов IIS auth, теперь мы должны автоматизировать разблокировку. Я упоминал, что IIS - ужасный продукт?

0

откройте свою папку, которая будет содержать ваш проект с помощью Windows Explore. щелкните правой кнопкой мыши эту папку и добавьте права для пользователя IUSER.

0

Попробуйте установить дополнительный компонент "Разработка приложений" в IIS

0

После сбоя сервера у нас появился сайт с сообщением об ошибке "HTTP 500.19 0x80070005 Ошибка - Не удается прочитать файл конфигурации web.config". Обычно это были разрешения или анонимная конфигурация пользователя, но они были установлены отлично и не изменились. Подозревая, что что-то повреждено в метабазе IIS (или в% windir%\system32\inetsrv\config\applicationHost.config с IIS7), я смог вернуть его и запустить, удалив сайт в IIS и повторно создав его.

0

Просто измените пространство имен на [WebService (Namespace = " http://tempuri.org/" )] на

http://microsoft.com/webservices/

Я решил проблему с этим решением

0

Ничего из этого не сработало для меня, но у меня наконец есть решение, которое сработало для меня:

удалите эту строку в файле web.config:

<compilation debug="true" targetFramework="4.5"/>

не удалять эту строку

<compilation debug="true"/>
0

В моем случае я выбрал пул приложений с .NET Framework 2.0 и включенным 32-битным приложением. У меня было приложение .NET Framework 2.0.

Я получаю сообщение "Была сделана попытка загрузить программу с неправильным форматом" ошибка в проекте репликации SQL Server

-2

* Очень простое решение:

  • Перейдите в IIS

  • Выберите приложение из левой панели.

  • Дважды щелкните ссылку "Просмотр каталога в средней панели".

  • Теперь перейдите в правую область и в разделе "Действие", просто нажмите "ENABLE"

Что все!!

Люди, попытайтесь понять ошибку: Ошибка конфигурации Не удается прочитать файл конфигурации из-за недостаточных разрешений

Ещё вопросы

Сообщество Overcoder
Наверх
Меню