Ответ 1
Если вы можете развернуть дочернее приложение на отдельный веб-сайт (тот же компьютер, другой порт), Маршрутизация запросов приложений может помочь с этим.
Решение похоже на этот пост. Сначала установите
Мы развернули веб-сайт 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" />
он все еще сообщает о той же ошибке:
Если вы можете развернуть дочернее приложение на отдельный веб-сайт (тот же компьютер, другой порт), Маршрутизация запросов приложений может помочь с этим.
Решение похоже на этот пост. Сначала установите
Это сработало для меня.
Для тех, кто не смог найти решение для пути к местоположению, вы, возможно, забыли закрыть тег элементов местоположения (если вы только что отредактировали файл web.config в текстовом редакторе на сервере). Вот пример:
<configuration>
<configSections>
...
</configSections>
<connectionStrings>
...
</connectionStrings>
<location path="." inheritInChildApplications="false">
<system.web>
...
</system.web>
...
</location>
</configuration>
Обратите внимание, что configSections и connectionStrings не должны находиться в элементе location, что, вероятно, является причиной того, что попытка OP не работает.
Вы пробовали следующую ссылку:
http://www.kowitz.net/archive/2007/05/16/stopping-asp-net-web-config-inheritance
Я могу поручиться за это, работая, как я это делал в прошлом.
Вы не можете обернуть весь элемент конфигурации <configSections>
в <location path="." inheritInChildApplications="false">
. Это не поддерживается в ASP.NET(пока).
Из документации:
Свойство SectionInformation.InheritInChildApplications
InheritInChildApplications собственность применяется только к настройка местоположения настройки.
также:
ЭлементыПолучает или задает значение, указывающее являются ли настройки, которые , указанные в соответствующем разделе конфигурации, наследуются приложениями, которые находятся в подкаталог соответствующего приложение.
<configSection>
являются особыми и не являются настройками конфигурации. Они используются для определения обработчиков для настроек конфигурации.
Если вам нужно удалить конфликтующую конфигурацию <section>
из дочернего приложения, вы можете сделать это в файле дочернего приложения web.config
с помощью элемента <remove>
: