Выгрузка частей файла web.config из дочернего приложения - PullRequest
8 голосов
/ 16 декабря 2011

У нас есть большая система управления контентом, настроенная в качестве основного сайта в IIS.У нас также есть несколько независимых приложений, которые настроены как приложения под IIS 7.5.Проблема, с которой мы сталкиваемся, заключается в том, что дочерние приложения наследуют файл web.config из родительского приложения, даже если они являются полностью независимыми приложениями и не имеют общих настроек конфигурации.В идеале нам бы хотелось, чтобы дочерние приложения вообще не наследовали файл web.config.Это возможно?

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

Я понимаю, что мы можем изменить родительский файл web.config для добавления вдирективы для эффективного ограничения наследования;однако мы не решаемся сделать это, потому что не уверены, как это повлияет на CMS.Файл web.config также имеет длину около 1000 строк, и мы не уверены, сколько изменений нам нужно сделать.Конечно, мы можем двигаться дальше с этим решением и провести тщательное тестирование, но я бы предпочел найти такое, которое не требует модификации родительского приложения.

Мы также попытались обновить дочерние файлы web.configвручную удалить определенные элементы родительского web.config, и мы получили смешанные результаты.Мы можем выгрузить обработчики HTTP и тому подобное, но мы не можем выгрузить ни одну из ссылок на папку App_Code.

Короче говоря, возможно ли, чтобы дочернее приложение НЕ наследовало какую-либо частьфайл web.config?Если нет, можно ли перезаписать или иным образом заставить ребенка игнорировать настройки в родительском файле web.config?

Спасибо

Дейв

Ответы [ 3 ]

11 голосов
/ 18 декабря 2011

Помимо использования <clear/> или перезаписи настроек в дочернем файле web.config, вы можете использовать параметр inheritInChildApplications вместе с родительским файлом web.config.

Пример:

<location path="." inheritInChildApplications="false"> 
  <system.web>     
    <!-- ... -->
  </system.web>
</location>

Вы можете обернуть расположение вокруг всего <system.web> или только вокруг определенных разделов.

Некоторые ссылки для получения дополнительной информации:

1 голос
/ 18 декабря 2011

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

Теперь это приложение для интрасети звучит так, как будто оно использует аутентификацию Windows, если это не сработает, так как вы не можете отменить прокси-аутентификацию Windows через прокси.

0 голосов
/ 16 декабря 2011

Добавьте <clear/> в начале раздела, чтобы избавиться от унаследованных настроек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...