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

3 голосов
/ 20 марта 2018

Ошибка говорит о том, что раздел конфигурации заблокирован на родительском уровне. Так что это не будет непосредственно 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 компьютера (файлы root.config и machine.config можно найти по адресу - systemroot \ MicrosoftNET \ Framework \ versionNumber \ CONFIG \ Machine.config)

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

2 голосов
/ 04 апреля 2015

Получена такая же проблема после установки 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>
2 голосов
/ 12 мая 2014

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

в службе добавления ролей вы увидите «Функции разработки приложений»

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

1 голос
/ 12 августа 2015

У меня была проблема, когда я вставлял значения переопределения = "Разрешить" (уже упоминалось здесь) ...... но в 64-битной системе ........ мой 32-й блокнот ++ их фантомно сохранял,Переключение на Блокнот (это 64-битное приложение на 64-битном 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-разрядной версией Блокнота.Как бы мне это не нравилось, по крайней мере, это работает.

0 голосов
/ 16 мая 2014

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

  • Решено, включив функцию сервера приложений. Перезапущен iis после этого.
0 голосов
/ 12 февраля 2019

Добавление следующего ключа в реестр решило мою проблему:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ASP.NET_64\Performance

Когда я пытался эти шаги, я продолжал получать ошибку:

  1. Поиск "TurnВключение или отключение функций Windows "
  2. Проверка" Информационные службы Интернета "
  3. Проверка" Службы всемирной паутины "
  4. Проверка" Функции разработки приложений "
  5. Включениевсе элементы под этим

Затем я посмотрел на просмотрщик событий и увидел эту ошибку :Unable to install counter strings because the SYSTEM\CurrentControlSet\Services\ASP.NET_64\Performance key could not be opened or accessed. The first DWORD in the Data section contains the Win32 error code.

Чтобы исправить проблему, я вручную создал следующую запись в реестре:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ASP.NET_64\Performance

и следуйте этим шагам:

  1. Поиск «Включение или отключение функций Windows»
  2. Проверка «Информационные службы Интернета»"
  3. Проверьте" World Wide Web Services "
  4. Проверьте" Функции разработки приложений "
  5. Включите все элементы в этом
0 голосов
/ 02 декабря 2014

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

0 голосов
/ 18 июня 2015

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

Пожалуйста, удалите уровень доверия из web.config:

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

0 голосов
/ 26 августа 2015

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

Удаленный раздел:

    <security>
        <authentication>
            <windowsAuthentication enabled="true" />
        </authentication>
    </security>
0 голосов
/ 28 января 2016

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

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

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

...