Ошибка конфигурации: этот раздел конфигурации не может использоваться по этому пути - PullRequest
1640 голосов
/ 21 марта 2012

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

Ошибка конфигурации: этот раздел конфигурации нельзя использовать по этому пути.Это происходит, когда раздел заблокирован на родительском уровне.Блокировка либо по умолчанию (overrideModeDefault = "Deny"), либо устанавливается явно с помощью тега местоположения с помощью overrideMode = "Deny" или устаревшего allowOverride = "false".

Более подробную информацию можно найти здесь.в Сценарий 7 соответствует моему шестнадцатеричному коду ошибки.

Решение, приведенное на связанном сайте выше, состоит в том, чтобы установить Разрешить для overrideModeDefault в разделе, упомянутом в моей ошибке,в файле applicationHost.config .В моем случае под Безопасность в system.webServer .Но если я посмотрю applicationHost.config на моем локальном компьютере, где сайт уже правильно развернут, этот раздел будет установлен на Запретить .

Если это решениеправильно, как мой локальный экземпляр работает нормально с тем же web.config ?Согласно моему applicationHost.config этот раздел должен быть заблокирован, но это не так.Я бы предпочел не изменять файл applicationHost.config , поскольку на этом сервере запущено много других сайтов.Есть ли другое решение?

Ответы [ 31 ]

3085 голосов
/ 13 октября 2012

У меня была такая же проблема.Не помню, где я нашел его в Интернете, но вот что я сделал:

  • Нажмите «Пуск»
  • в поле поиска, введите «Включить функции Windows»или отключите "
  • в окне функций, нажмите:" Информационные службы Интернета "
  • Нажмите:" Службы всемирной паутины "
  • Нажмите:" Функции разработки приложений "
  • Проверьте (включите) функции.Я проверил все, кроме CGI.

Кстати, я использую Windows 7.

346 голосов
/ 10 сентября 2012

Вы также можете использовать IIS Manager для редактирования этих настроек.

Уход за этим Изучите статью IIS :

Использование Делегирование функций из корня IIS:

Feature delegation icon in IIS Manager

Затем вы можете контролировать каждое из прав чтения / записи на уровне компьютера, которое в противном случае даст вам overrideMode = "Запретить" ошибки.

Example use of Feature Delegation

171 голосов
/ 30 января 2014

Для Windows Server 2012 и IIS 8 , процедура аналогична.

Должны быть установлены Web Server (IIS) и Application Server, и вы также должны иметь дополнительный Web Server (IIS) Support в Application Server.

Windows Server 2012 and IIS 8 Requirements for MVC

132 голосов
/ 01 мая 2012

Перейдите в «C: \ Windows \ System32 \ inetsrv \ config» (здесь вам потребуются права администратора). Откройте applicationHost.config

Примечание : в IISExpress и Visual Studio 2015applicationHost.config хранится в $(solutionDir).vs\config\applicationhost.config

Найдите раздел, который появился в части «config source» страницы сообщения об ошибке.Для меня это обычно были «модули» или «обработчики»

Измените атрибут overrideModeDefault на Allow

Так что теперь вся строка выглядит так:

<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />

После сохранения файла страница нормально загрузилась в моем браузере.

Предупреждение: Редактирование applicationHost.config в 64-битной Windows

65 голосов
/ 07 декабря 2012

Вам нужно разблокировать обработчики. Это можно сделать с помощью следующей команды cmd:

%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers

Может быть, другая информация для людей, которые получают эту ошибку на IIS 8, в моем случае была на платформе Microsoft Server 2012. Я потратил пару часов на борьбу с другими ошибками, которые появлялись после выполнения appcmd. В конце концов я смог это исправить, удалив роль веб-сервера и установив ее снова.

34 голосов
/ 23 февраля 2017

Для Win 10 (возможно, будет работать и в других версиях Windows.)

1. Открыть " Включить или отключить функции Windows"by: WinKey + R =>" факультативные функции "=> ОК

enter image description here

Включить эти функции в разделе « Функции разработки приложений»

enter image description here

34 голосов
/ 06 сентября 2014

Согласно моему ответу на подобный вопрос ;

Попробуйте разблокировать соответствующие параметры конфигурации IIS на уровне сервера следующим образом:

  1. Открыть Диспетчер IIS
  2. Выберите сервер на панели Подключения
  3. Открыть Редактор конфигурации на главной панели
  4. В раскрывающемся списке «Разделы» выберите раздел для разблокировки, например, system.webServer> defaultPath
  5. Нажмите Атрибут разблокировки на правой панели
  6. Повторите для любых других настроек, которые вам нужно разблокировать
  7. Перезапустить IIS (необязательно). Выберите сервер на панели «Соглашения», нажмите «Перезапустить» на панели «Действия»
28 голосов
/ 18 ноября 2014

Мне нужно было запустить эти две команды из командной строки с повышенными привилегиями:

%windir%/system32/inetsrv/appcmd unlock config /section:anonymousAuthentication

%windir%/system32/inetsrv/appcmd unlock config -section:windowsAuthentication
25 голосов
/ 10 февраля 2014

Вкл. Windows Server 2012 с IIS 8 Я решил эту проблему, включив функцию ASP.NET 4.5 :

enter image description here

и затем ответ Кена .

22 голосов
/ 16 августа 2016

Лучший вариант - изменить Application Settings из Custom Site Delegation
Открыть IIS и из корня выбрать Feature Delegation, а затем выбрать Application Settings и из правой боковой панели выбрать Read/Write Step #1 Step #2

...