Ошибка конфигурации: этот раздел конфигурации нельзя использовать по этому пути
Я столкнулся с ошибкой развертывания сайта на сервере. При попытке загрузить домашнюю страницу или аутентификацию доступа на новом сайте в IIS я получаю сообщение об ошибке:
ошибка конфигурации: этот раздел конфигурации нельзя использовать по этому пути. Это происходит, когда секция заблокирована на родительском уровне. Запирать либо по умолчанию (overrideModeDefault= "Deny"), либо задано явно тег местоположения с overrideMode= "Deny" или устаревший allowOverride= "false".
более подробную информацию можно найти здесь, в сценарий 7 соответствует моему шестнадцатеричному коду ошибки.
решение с учетом вышеуказанных сайтов является задание разрешить для overrideModeDefault в разделе, упомянутом в моей ошибке, в applicationHost.config. В моем случае, под безопасность на
30 ответов
У меня была та же проблема. Не помню, где я нашел его в интернете, но вот что я сделал:
- Нажмите кнопку "Пуск"
- в поле поиска введите "включить или выключить функции windows"
- В окне функции нажмите: "информационные службы Интернета"
- Нажмите: "World Wide Web Services"
- Нажмите: "Возможности Разработки Приложений"
- проверить (включить) функции. Я проверил все, но ЦГИ.
кстати, я использую Windows 7.
вы также можете использовать диспетчер IIS для редактирования этих настроек.
Это узнать статью IIS:
с помощью Делегация Функция из корня IIS:
затем вы можете управлять каждым из разрешений на чтение/запись на машинном уровне, которые в противном случае дадут вам overrideMode= "Deny" ошибки.
на Windows Server 2012 и IIS 8, процедура аналогична.
на Web Server (IIS)
и Application Server
должен быть установлен, и вы также должны иметь дополнительно Web Server (IIS) Support
под Application Server
.
перейдите к "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 на уровне сервера следующим образом:
- открыть диспетчер IIS
- выберите сервер на панели подключения
- открыть Редактор Конфигурации на главной странице
- в раскрывающемся списке разделы Выберите раздел для разблокировки, например
Мне нужно, чтобы запустить эти две команды из командной строки:
%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
- включить эти функции в " Особенности Разработки Приложений"
Это сделало трюк для меня, для IIS 8 Windows server 2012 R2
перейти к "включить функции"
затем перейдите ко всем настройкам по умолчанию, Далее, Далее, Далее и т. д..
Затем выбираем как показано ниже,
затем сбросьте IIS (необязательно), но сделайте это более безопасной стороной.
Это дополнительное решение, поскольку его общая проблема у всех разные проблемы и, следовательно, разные решение. Ура!
Кажется, что с 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 мы обнаружили, что ошибка была произведена при попытке просмотра аутентификации " для сайта, когда:
- делегирование функций сервера, помеченное как "Authentication-Windows" = "только для чтения"
- на сайте была сеть.config, который явно ссылается на аутентификацию windows; например,
маркировка делегирования функции сайта "аутентификация-Windows" = "чтение / запись", ошибка исчезла. Похоже, что с пометкой "Read Only", the web.config не позволяет ссылаться на него вообще, даже чтобы отключить его, поскольку это, по-видимому, составляет запись.
способ 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
поэтому вам нужно проверить настройки конфигурации приложения ниже заказ
- ApplicationHost.config в C:windows\system32\inetsrv\config - ... Измените атрибут overrideModeDefault на Allow.
- ApplicationName.config или web.config в каталоге приложений
- Web.config в корневом каталоге.
- Web.config на конкретном веб-сайте (моя проблема была найдена в этом месте).
- Web.конфигурация корневой сети (конфигурация сервера)
- машины.конфигурация машины (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.