Ошибка конфигурации: этот раздел конфигурации не может использоваться по этому пути - 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 ]

20 голосов
/ 01 июня 2017

Это помогло мне, для IIS 8, Windows Server 2012 R2

Перейдите в «Включить функции»

Затем перейдите ко всем настройкам по умолчанию, Далее, Далее, Далее и т. Д..

Затем выберите, как показано ниже, enter image description here

Затем выполните сброс IIS (необязательно), но сделайте это более безопасной стороной.

enter image description here

Это дополнительное решение, поскольку его общая проблема - у всех разные проблемы и, следовательно, разные решения.Ура!

14 голосов
/ 29 декабря 2016

Чтобы исправить это, откройте приложение IIS Express applicationhost.config. Этот файл хранится в C: \ Users [ваше имя пользователя] \ Documents \ IISExpress \ config \ applicationhost.config

Обновление для VS2015 +: расположение файла конфигурации: $ (solutionDir) .vs \ config \ applicationhost.config

Найдите следующие строки

<section name="windowsAuthentication" overrideModeDefault="Deny" />
<section name="anonymousAuthentication" overrideModeDefault="Deny" />
<add name="WindowsAuthenticationModule" lockItem="true" />
<add name="AnonymousAuthenticationModule" lockItem="true" />

Измените эти строки на

<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<add name="WindowsAuthenticationModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />

Сохраните его и обновите страницу Asp.net.

12 голосов
/ 12 января 2016

Похоже, что в IIS Express и VS 2015 есть копия файла applicationHost.config по адресу $ (solutionDir) .vs \ config \ applicationhost.config, так что вам нужно будет внести в него изменения. Смотрите эту ссылку: http://digitaldrummerj.me/iis-express-windows-authentication/

Убедитесь, что эти строки изменены следующим образом:

<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<add name="WindowsAuthenticationModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />
11 голосов
/ 18 ноября 2015

В нашем случае на IIS 8 мы обнаружили ошибку, возникшую при попытке просмотреть «Аутентификацию» для сайта, когда:

  1. Делегирование функций сервера, помеченное как «Аутентификация - Windows» = «ЧтениеТолько "
  2. . На сайте был файл web.config, который явно ссылался на проверку подлинности Windows; например,

Пометка сайта Функция делегирования" Аутентификация - Windows "=" Чтение / запись ",ошибка исчезла. Похоже, что с функцией, помеченной как «Только чтение», web.config вообще не имеет права ссылаться на него, даже чтобы отключить его, поскольку это, очевидно, составляет запись.

site web.config IIS Manager - Server Feature Delegation

11 голосов
/ 24 мая 2014

В моем случае это было то, что на сервере не была включена «Активация HTTP» под .NET Framework Features. Поэтому для Windows Server 2012 решение, которое у меня работало, было:

Диспетчер серверов -> Добавление ролей и функций -> Функции -> убедитесь, что в .NET Framework версии, которую вы хотите использовать, установлен флажок «Активация HTTP»

8 голосов
/ 09 марта 2016

Способ включения функций в Powershell (Windows Server 2012 +) - при необходимости:

Install-WindowsFeature NET-Framework-Core
Install-WindowsFeature Web-Server -IncludeAllSubFeature
Install-WindowsFeature NET-Framework-Features -IncludeAllSubFeature
Install-WindowsFeature NET-Framework-45-ASPNET -IncludeAllSubFeature
Install-WindowsFeature Application-Server -IncludeAllSubFeature
Install-WindowsFeature MSMQ -IncludeAllSubFeature
Install-WindowsFeature WAS -IncludeAllSubFeature
6 голосов
/ 29 августа 2015

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

Открыл C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config

И изменил значение с overrideModeDefault = "Deny" на "Allow"

<sectionGroup name="system.webServer">
 ...
    <sectionGroup name="security">
        <section name="access" overrideModeDefault="Allow" />
    </sectionGroup>
4 голосов
/ 07 июня 2013

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

Я делал это:

Configuration config = serverManager.GetWebConfiguration(websiteName);
ConfigurationSection serverRuntimeSection = config.GetSection("system.webServer/serverRuntime");
serverRuntimeSection["alternateHostName"] = hostname;

вместо правильного кода:

Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection serverRuntimeSection = configApp.GetSection("system.webServer/serverRuntime", websiteName);
serverRuntimeSection["alternateHostName"] = hostname;

другими словами, я пытался работать с web.config веб-сайта вместо глобального файла C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config, который имеет раздел (или может иметьраздел) для сайта.Параметр, который я пытался изменить, существует только в файле applicationHost.config.

4 голосов
/ 18 мая 2017

В моем случае это было что-то другое.

Когда я загрузил решение в новую версию Visual Studio, VS, очевидно, создал новый файл applicationhost.config для конкретного проекта:

MySolutionDir \ .vs \ config \ applicationhost.config

Он начал использовать настройки из новой конфигурации вместо моих уже настроенных глобальных настроек IIS Express.(\ Users \% USER% \ Documents \ IISExpress \ config \ applicationhost.config)

В моем случае это был параметр, который нужно было установить.Конечно, это может быть что-то еще для вас:

<section name="ipSecurity" overrideModeDefault="Allow" />
3 голосов
/ 16 февраля 2016

Можете ли вы попробовать это:

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

Свойства-> вкладка Безопасность

Для этого измените разрешения и установите флажок «Чтение и запись». Тогда он будет работать без каких-либо ошибок.

...