Ошибка конфигурации: этот раздел конфигурации не может использоваться по этому пути
Я столкнулся с ошибкой при развертывании сайта на сервере. При попытке загрузить домашнюю страницу или получить доступ к аутентификации на новом сайте в IIS, я получаю сообщение об ошибке:
Ошибка конфигурации: этот раздел конфигурации не может использоваться на этом пути. Это происходит, когда секция заблокирована на родительском уровне. Блокировка либо по умолчанию (overrideModeDefault = "Deny" ), либо явно указывается тег местоположения с overrideMode = "Deny" или наследие AllowOverride = "ложь".
Более подробную информацию можно найти здесь, в Сценарий 7 соответствует моему шестнадцатеричному коду ошибки.
Решение, указанное на связанном сайте выше, должно установить Разрешить для overrideModeDefault в разделе, упомянутом в моей ошибке, в файле applicationHost.config. В моем случае под Безопасность в system.webServer. Но если я посмотрю на applicationHost.config на моем локальном компьютере, где сайт уже правильно развернут, этот раздел имеет значение Запретить.
Если это решение верно, как мой локальный экземпляр работает отлично с тем же web.config? Согласно моему applicationHost.config, этот раздел должен быть заблокирован, но это не так. Я бы предпочел не изменять файл applicationHost.config, потому что на этом сервере работает много других сайтов. Есть ли другое решение?
Ответы
Ответ 1
У меня была та же проблема. Не помните, где я нашел его в Интернете, но вот что я сделал:
- Нажмите кнопку "Пуск"
- в поле поиска введите "Включить или отключить функции Windows"
- в окне функций, нажмите "Интернет-службы".
- Нажмите "Услуги всемирной паутины"
- Нажмите "Функции разработки приложений"
- Проверить (включить) функции. Я проверил все, кроме CGI.
btw, я использую Windows 7.
Ответ 2
Вы также можете использовать Диспетчер IIS, чтобы отредактировать эти настройки.
Уход за этим Изучите статью IIS:
Использование делегирования функций из корня IIS:
Затем вы можете управлять каждым из разрешений на чтение/запись на уровне машины, что в противном случае даст вам ошибки overrideMode = "Deny".
Ответ 3
Для Windows Server 2012 и IIS 8 процедура похожа.
Должны быть установлены Web Server (IIS)
и Application Server
, и вы также должны иметь опцию Web Server (IIS) Support
под Application Server
.
Ответ 4
Перейдите в "C:\Windows\System32\inetsrv\config" (вам потребуются права администратора здесь). Откройте applicationHost.config.
Примечание. В IISExpress и Visual Studio 2015 applicationHost.config хранится в $(solutionDir).vs\config\applicationhost.config
Найдите раздел, который появился в части "config source" на странице сообщения об ошибке. Для меня это обычно были "модули" или "обработчики"
Измените атрибут overrideModeDefault
на Allow
Итак, теперь вся строка выглядит так:
<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />
После сохранения файла страница нормально загрузилась в моем браузере.
Предупреждение: редактирование applicationHost.config в 64-битной Windows
Ответ 5
Вам нужно разблокировать обработчики. Это можно сделать, используя следующую команду cmd:
%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers
Возможно, другая информация для людей, которые получают эту ошибку в IIS 8, в моем случае была на платформе Microsoft Server 2012. Я провел пару часов, сражаясь с другими ошибками, которые пузырились после выполнения appcmd. В конце концов, я смог исправить это, удалив роль веб-сервера и снова установив его.
Ответ 6
В соответствии с моим ответом на эту аналогичную проблему;
Попробуйте разблокировать соответствующие параметры конфигурации IIS на уровне сервера, как показано ниже:
- Откройте Диспетчер IIS
- Выберите сервер на панели "Подключения"
- Откройте Редактор конфигурации на главной панели
- В раскрывающихся разделах выберите раздел для разблокировки, например. system.webServer > defaultPath
- Нажмите Разблокировать атрибут в правой панели
- Повторите для любых других настроек, которые необходимо разблокировать.
- Перезагрузите IIS (необязательно). Выберите сервер на панели "Контексты", нажмите "Перезагрузка" в панели "Действия".
Ответ 7
Для Win 10 (вероятно, будет работать и с другими версиями Windows.)
1. Откройте " Включить или отключить функции Windows": WinKey + R = > "optionalfeatures" = > OK
- Включить эти функции в разделе Возможности разработки приложений
Ответ 8
Мне нужно было запустить эти две команды из командной строки с повышенными значениями:
%windir%/system32/inetsrv/appcmd unlock config /section:anonymousAuthentication
%windir%/system32/inetsrv/appcmd unlock config -section:windowsAuthentication
Ответ 9
В Windows Server 2012 с IIS 8 я решил это, включив функцию ASP.NET 4.5:
а затем после ответ ken.
Ответ 10
Лучшим вариантом является Изменить Application Settings
на Custom Site Delegation
Откройте IIS
и от корневого выберите Feature Delegation
, а затем выберите Application Settings
и с правой боковой панели выберите Read/Write
Ответ 11
Это помогло мне, для IIS 8 Windows Server 2012 R2
Перейти к "Включить функции"
Затем перейдите ко всем настройкам по умолчанию, Далее, Далее, Далее и т.д.
Затем выберите, как показано ниже,
Затем сбросьте IIS (необязательно), но сделайте это более безопасной стороной.
Это дополнительное решение, так как это общая проблема, у всех разные проблемы и, следовательно, разные решения. Ура!
Ответ 12
Чтобы исправить это, откройте 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.
Ответ 13
Похоже, что с 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" />
Ответ 14
В моем случае это было то, что на сервере не было активировано "HTTP-активация" в .NET Framework. Поэтому для Windows Server 2012 решение, которое работало для меня, было:
Диспетчер серверов → Добавить роли и функции → Функции → убедитесь, что в .NET Framework версии, которую вы хотите использовать, установлен флажок "HTTP Activation"
Ответ 15
В нашем случае на IIS 8 мы обнаружили, что ошибка возникла при попытке просмотреть аутентификацию "для сайта, когда:
- Делегирование функций сервера, помеченное как "Аутентификация - Windows" = "Только для чтения"
- На сайте был web.config, который явно ссылался на проверку подлинности Windows; например,
Маркировка сайта Делегирование функций "Аутентификация - Windows" = "Чтение/Запись", ошибка исчезла. Похоже, что с функцией, отмеченной как "Только чтение", web.config вообще не разрешает ссылаться на нее даже для ее отключения, поскольку это, по-видимому, представляет собой запись.
Ответ 16
Возможности 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
Ответ 17
Мне нужно было изменить настройки SSL в подпапке, когда я получил это сообщение. В моем случае после меня помогло следующее.
Открыт C:\Windows\System32\inetsrv\config\applicationHost.config
И изменил значение с overrideModeDefault = "Запретить" на "Разрешить"
<sectionGroup name="system.webServer">
...
<sectionGroup name="security">
<section name="access" overrideModeDefault="Allow" />
</sectionGroup>
Ответ 18
В моем случае я получил эту ошибку, потому что я работал с неправильным конфигурационным файлом.
Я делал это:
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.
Ответ 19
В моем случае это было нечто другое.
Когда я загрузил решение в новую версию Visual Studio, VS, видимо, создал новый файл applicationhost.config для проекта:
MySolutionDir \.vs\Config\ApplicationHost.config
Он начал использовать настройки из новой конфигурации вместо моих уже настроенных глобальных настроек IIS Express.
(\ Users\%USER%\Documents\IISExpress\Config\ApplicationHost.config)
В моем случае это была настройка, которую нужно было установить. Конечно, это может быть что-то еще для вас:
<section name="ipSecurity" overrideModeDefault="Allow" />
Ответ 20
Можете ли вы попробовать следующее:
Перейдите в путь приложения, в котором вы получаете отказ, щелкните правой кнопкой мыши
Свойства- > вкладка Безопасность
В этом случае измените разрешения и установите флажок "читать и писать". Тогда он будет работать без ошибок.
Ответ 21
Ошибка говорит о том, что раздел конфигурации заблокирован на родительском уровне. Таким образом, это не будет непосредственно 1 файл конфигурации, который решит проблему, нам нужно пройти через иерархию файлов конфигурации, чтобы увидеть наследование Проверьте ссылку ниже, чтобы пройти иерархию файлов и наследование в IIS
https://msdn.microsoft.com/en-us/library/ms178685.aspx
Так что вам нужно проверить настройки приложения в следующем порядке
- ApplicationHost.config в C: windows\system32\inetsrv\config. Измените атрибут overrideModeDefault на Разрешить.
- ApplicationName.config или web.config в каталоге приложений
- Web.config в корневом каталоге.
- Web.config на определенном веб-сайте (моя проблема была найдена в этом месте).
- Web.config корневой сети (конфигурация сервера)
- machine.config машины (корневые web.config и machine.config можно найти по адресу - systemroot\MicrosoftNET\Framework\versionNumber\CONFIG\Machine.config)
Внимательно просмотрите все эти конфиги в порядке от 1 до 6, и вы должны их найти.
Ответ 22
Для Windows Server 2008 и IIS 7 процедура аналогична.
обратитесь к следующему:
http://msdn.microsoft.com/en-us/library/vstudio/bb763178 (v = vs .100).aspx
в службе добавления роли, u увидит "Возможности разработки приложений"
Проверить (включить) функции. Я проверил все.
Ответ 23
Норвежский google ref:
Денн конфигурасиондэлен кань ikke brukes и denne banen. Dette skjer når delen er låst på et overordnet nivå. Låsing skjer som standard (overrideModeDefault = "Deny" ) eller angis eksplisitt av en stedskode med overrideMode = "Deny" eller den eldre allowOverride = "false".
Включение всех вариантов разработки приложений исправлено для меня. Мне, вероятно, не нужны все, но теперь это работает.
Ответ 24
Получил эту же проблему после установки IIS 7 в Vista Home Premium. Чтобы исправить ошибку, я изменил следующие значения, расположенные в файле applicationHost.config, расположенном в 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>
Ответ 25
У меня была проблема, когда я вводил значения override = "Allow" (упомянутые здесь уже)...... но на x64-битной системе....... мой 32 блокнот ++ был phantom сохраняя их. Переключение на блокнот (это 64-битное приложение на x64-разрядном O/S) позволило мне сохранить настройки.
Смотрите:
http://dpotter.net/technical/2009/11/editing-applicationhostconfig-on-64-bit-windows/
Соответствующий текст:
Одна из проблем, с которыми я сталкиваюсь, требует, чтобы я просматривал и, возможно, редактировал applicationHost.config. Этот файл находится в папке% SystemRoot%\System32\inetsrv\config. Кажется достаточно простым. Мне удалось легко найти его из командной строки, но когда я пошел загружать его в свой любимый редактор (Notepad ++), я получил ошибку, не найденную в файле. Оказывается, папка System32 перенаправляется для 32-разрядных приложений на SysWOW64. Кажется, что нет возможности просматривать папку System32 с помощью 32-разрядного приложения. Идите фигуру.
К счастью, 64-разрядные версии Windows поставляются с 64-разрядной версией Notepad. Насколько мне это не нравится, по крайней мере, он работает.
Ответ 26
У меня была такая же проблема.
- Решено, включив функцию Application Server. Перезагрузка iis
после этого.
Ответ 27
Это сработало для меня
Также в IIS 8 вы можете решить эту проблему, изменив сервер на IIS Express. Перейти к debug- > Свойства
В Интернете выберите сервер как IIS Express из раскрывающегося списка, а затем переустановите решение
Ответ 28
Чтобы внести изменения на уровне приложения (Web.Config):
Удалите уровень доверия из web.config:
На самом деле я получал эту ошибку, когда пытался разместить свой сайт на сервере хостинга, где у меня нет контроля на их сервере. Удаление вышеуказанной строки из моего приложения web.config решило мою проблему.
Ответ 29
В моем случае я получал эту ошибку при попытке обновить параметры проверки подлинности в IIS также в дополнение к просмотру. Я смог удалить эту ошибку, удалив параметр проверки подлинности из самого web.config. Удаление проблемного раздела конфигурации может быть менее инвазивным и предпочтительным в некоторых случаях, чем слишком сильно изменить роли и функции сервера:
Раздел Удалено:
<security>
<authentication>
<windowsAuthentication enabled="true" />
</authentication>
</security>
Ответ 30
Следующие работали для меня:
Перейдите к свойствам проекта. Веб-вкладка. Установите для Local IIS и установите определенную страницу.
У меня есть Windows 7 и Visual Studio 2013.