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

Я столкнулся с ошибкой при развертывании сайта на сервере. При попытке загрузить домашнюю страницу или получить доступ к аутентификации на новом сайте в 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:

Feature delegation icon in IIS Manager

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

Example use of Feature Delegation

Ответ 3

Для 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

Ответ 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

введите описание изображения здесь

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

введите описание изображения здесь

Ответ 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:

enter image description here

а затем после ответ ken.

Ответ 10

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

Ответ 11

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

Перейти к "Включить функции"

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

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

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

enter image description here

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

Ответ 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 вообще не разрешает ссылаться на нее даже для ее отключения, поскольку это, по-видимому, представляет собой запись.

site web.config Менеджер IIS - делегирование функций сервера

Ответ 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

Так что вам нужно проверить настройки приложения в следующем порядке

  1. ApplicationHost.config в C: windows\system32\inetsrv\config. Измените атрибут overrideModeDefault на Разрешить.
  2. ApplicationName.config или web.config в каталоге приложений
  3. Web.config в корневом каталоге.
  4. Web.config на определенном веб-сайте (моя проблема была найдена в этом месте).
  5. Web.config корневой сети (конфигурация сервера)
  6. 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.