Ошибка конфигурации: этот раздел конфигурации нельзя использовать по этому пути

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

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

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

решение с учетом вышеуказанных сайтов является задание разрешить для overrideModeDefault в разделе, упомянутом в моей ошибке, в applicationHost.config. В моем случае, под безопасность на

30 ответов


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

  • Нажмите кнопку "Пуск"
  • в поле поиска введите "включить или выключить функции windows"
  • В окне функции нажмите: "информационные службы Интернета"
  • Нажмите: "World Wide Web Services"
  • Нажмите: "Возможности Разработки Приложений"
  • проверить (включить) функции. Я проверил все, но ЦГИ.

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


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

Это узнать статью IIS:

с помощью Делегация Функция из корня IIS:

Feature delegation icon in IIS Manager

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

Example use of Feature Delegation


на 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


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

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

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

изменить на Allow

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

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

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

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


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

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

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


по состоянию на мой ответ на этот же вопрос;

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

  1. открыть диспетчер IIS
  2. выберите сервер на панели подключения
  3. открыть Редактор Конфигурации на главной странице
  4. в раскрывающемся списке разделы Выберите раздел для разблокировки, например

Мне нужно, чтобы запустить эти две команды из командной строки:

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

%windir%/system32/inetsrv/appcmd unlock config -section:windowsAuthentication

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

1. открыть "включение и выключение компонентов windows "by: WinKey+ R = > "optionalfeatures" = > OK

enter image description here

  1. включить эти функции в " Особенности Разработки Приложений"

enter image description here


On Windows Server 2012 С IIS 8 Я решил это, включив ASP.NET 4.5 характеристика:

enter image description here

и после Кен.


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


Это сделало трюк для меня, для IIS 8 Windows server 2012 R2

перейти к "включить функции"

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

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

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

enter image description here

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


Кажется, что с 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" />

чтобы исправить это, откройте IIS Express applicationhost.конфиг. Этот файл хранится в 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 Пейдж.


в моем случае это было то, что на сервере не была включена "активация HTTP" под функциями .NET Framework. Так что для Windows Server 2012 решение, которое работало для меня было:

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


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

  1. делегирование функций сервера, помеченное как "Authentication-Windows" = "только для чтения"
  2. на сайте была сеть.config, который явно ссылается на аутентификацию windows; например,

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

site web.config IIS Manager - Server Feature Delegation


способ 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

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

Я делаю так:

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;

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


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

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

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

<sectionGroup name="system.webServer">
 ...
    <sectionGroup name="security">
        <section name="access" overrideModeDefault="Allow" />
    </sectionGroup>

для Windows Server 2008 и IIS 7 процедура аналогична. пожалуйста, обратитесь к этому: http://msdn.microsoft.com/en-us/library/vstudio/bb763178 (v=против 100).aspx

в add role service, u увидит "возможности разработки приложений"

проверить (включить) функции. Я все проверил.


норвежский Google ref:

denne, оформленные konfigurasjonsdelen система KAN brukes иккэ-я банен denne, оформленные. Dette skjer når delen er låst på et overordnet nivå. Стандартный Låsing сайту skjer сом (overrideModeDefault="запретить") Эллер ангис eksplisitt АВ Ан stedskode мед overrideMode="запретить" Эллер Ден eldre директива allowoverride="ложь".

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


получил эту же проблему после установки IIS 7 на Vista Home Premium. Чтобы исправить ошибку, я изменил следующие значения, расположенные в applicationHost.файл конфигурации, расположенный в Windows\system32\inetsrv.

измените все следующие значения, расположенные в разделе -->

<div mce_keep="true"><section name="handlers" overrideModeDefault="Deny" /> change this value from "Deny" to "Allow"</div>
<div mce_keep="true"><section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> change this value from "Deny" to "Allow"</div>

вы можете попробовать это:

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

свойства->безопасность

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


в моем случае, это было нечто иное.

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

MySolutionDir\.vs\config\applicationhost.config

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

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

<section name="ipSecurity" overrideModeDefault="Allow" />

У меня была проблема, когда я вводил значения override = "Allow" (упомянутые здесь уже)......но в битной системе x64.......мой 32 notepad++ был фантомом, спасающим их. Переключение на Блокнот (который является 64-битным приложением на x64 бит O / S) позволило мне сохранить настройки.

посмотреть :

http://dpotter.net/technical/2009/11/editing-applicationhostconfig-on-64-bit-windows/

текст:

один из проблемы я не требовал, чтобы я просмотреть и редактировать файл applicationhost.конфиг. Этот файл находится по адресу %SystemRoot%\System32\inetsrv\config. Кажется, все достаточно просто. Я смог найти его из командной строки легко, но когда я пошел, чтобы загрузить его в моем любимом редакторе (Notepad++), я получил файл не найден ошибка. Оказывается, папка System32 перенаправляется для 32-разрядных приложений на SysWOW64. Похоже, нет способа просмотреть папку System32 с помощью 32-разрядного приложения. Идти фигура. К счастью, 64-разрядные версии Windows поставляются с 64-разрядной версией Notepad. Как бы мне это не нравилось, по крайней мере, это работает.


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

https://msdn.microsoft.com/en-us/library/ms178685.aspx

поэтому вам нужно проверить настройки конфигурации приложения ниже заказ

  1. ApplicationHost.config в C:windows\system32\inetsrv\config - ... Измените атрибут overrideModeDefault на Allow.
  2. ApplicationName.config или web.config в каталоге приложений
  3. Web.config в корневом каталоге.
  4. Web.config на конкретном веб-сайте (моя проблема была найдена в этом месте).
  5. Web.конфигурация корневой сети (конфигурация сервера)
  6. машины.конфигурация машины (Root сеть.config и машина.config можно найти в-systemroot\MicrosoftNET\Framework\versionNumber\CONFIG\Machine.config)

внимательно просмотрите все эти конфигурации в порядке от 1 до 6, и вы должны найти его.


У меня была та же проблема.

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

Это сработало для меня Также в IIS 8 эту проблему можно решить, изменив сервер на IIS Express. Перейти к отладка->свойства В Интернете выберите сервер как IIS Express из раскрывающегося списка, а затем перестройте решение


чтобы внести изменения на уровне приложения (Web.Config):

пожалуйста, удалите уровень доверия из интернета.конфиг:

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


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

Удалено:

    <security>
        <authentication>
            <windowsAuthentication enabled="true" />
        </authentication>
    </security>

для меня сработало следующее:

перейти к свойствам проекта. Веб-вкладка. Установите локальный IIS и задайте определенную страницу.

У меня есть Windows 7 и Visual Studio 2013.