Остановить наследование web.config из родительского приложения ASP.NET в IIS 7.5

Мы развернули веб-сайт ASP.NET(приложение 1) в IIS 7.5. Затем под этим приложением создайте другое приложение ASP.NET(приложение 2). Но в приложении 2 я не хочу наследовать web.config из приложения 1.

Если я попытаюсь сделать следующее в App 1, web.config:

<location path="." inheritInChildApplications="false"> 
    <configSections> 

    <!-- etc -->

    </configSections>
</location>

он сообщает об ошибке:

Ошибка конфигурации Конфигурационная секция конфигурации не может быть читайте, потому что отсутствует раздел Объявление

Если я попытаюсь сделать:

<remove name = "system.web.extensions" /> 

он все еще сообщает о той же ошибке:

Ответ 1

Если вы можете развернуть дочернее приложение на отдельный веб-сайт (тот же компьютер, другой порт), Маршрутизация запросов приложений может помочь с этим.

Решение похоже на этот пост. Сначала установите

Я бы опубликовал пример, но я ожидаю, что довольно просто понять, как это будет работать, если посмотреть .

Ответ 2

Это сработало для меня.

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

<configuration>
  <configSections>
 ...
  </configSections>
  <connectionStrings>
 ...
  </connectionStrings>
  <location path="." inheritInChildApplications="false">
  <system.web>
 ...
  </system.web>
 ...
  </location>
</configuration>

Обратите внимание, что configSections и connectionStrings не должны находиться в элементе location, что, вероятно, является причиной того, что попытка OP не работает.

Ответ 4

Вы не можете обернуть весь элемент конфигурации <configSections> в <location path="." inheritInChildApplications="false">. Это не поддерживается в ASP.NET(пока).

Из документации:

Свойство SectionInformation.InheritInChildApplications

InheritInChildApplications собственность применяется только к настройка местоположения настройки.

также:

Получает или задает значение, указывающее являются ли настройки, которые , указанные в соответствующем разделе конфигурации, наследуются приложениями, которые находятся в подкаталог соответствующего приложение.

Элементы

<configSection> являются особыми и не являются настройками конфигурации. Они используются для определения обработчиков для настроек конфигурации.

Если вам нужно удалить конфликтующую конфигурацию <section> из дочернего приложения, вы можете сделать это в файле дочернего приложения web.config с помощью элемента <remove>:

remove Элемент для configSections (схема общих настроек)