Избегайте наследования web.config в дочернем веб-приложении с использованием inheritInChildApplications

Я пытаюсь добавить

 

в web.config моего родительского веб-приложения, но он, похоже, не работает.

У моего родителя web.config есть:

    // 10 or so custom config sections like log4net, hibernate,                     

Мое дочернее веб-приложение настроено как приложение в IIS и наследуется от web.config родителя, что вызывает проблемы.

Где именно я должен разместить

  

поэтому он игнорирует все настройки web.config?

Как отмечали комментаторы для предыдущего ответа, вы не можете просто добавить строку …

  

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

                    

Хотя может работать для некоторых разделов конфигурации, есть некоторые, которые вместо этого требуют директиву , а другие, похоже, тоже не поддерживают. В этих ситуациях, вероятно, уместно установить inheritInChildApplications="false" .

Он должен идти непосредственно под корневым узлом и вам нужно установить такой путь:

       

Лучшим способом обработки наследования конфигурации является использование в дочерней конфигурации везде, где вы не хотите наследовать. Поэтому, если вы не хотели наследовать строки подключения родительского конфига, вы бы сделали что-то вроде этого:

        

Я все вложил:

  ....  

кроме: , и .

Есть некоторые случаи, когда мы не хотим наследовать некоторые секвенции из , но мы не можем поместить

в , поэтому нам нужно создать и поставить нежелательные разделы в эту группу. Группы разделов впоследствии могут быть вставлены в тег местоположения.

Поэтому мы должны изменить это:

  

В:

   

Мы получили ошибку, связанную с этим, после недавнего выпуска кода в одну из наших сред разработки. У нас есть приложение, которое является дочерним элементом другого приложения. До сих пор эти отношения отлично работали в течение ЛЕТ.

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

Решение:
Причина, по которой это никогда не было проблемой, состоит в том, что ключи и значения всегда были одинаковыми. Вчера мы обновили наши строки SQL-соединений, чтобы включить имя приложения в строку подключения. Это сделало строку уникальной, и все внезапно начали проваливаться.

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

Мы смогли решить это, обернув строку подключения, как это

       

Edit: Я забыл упомянуть, что добавил это в PARENTS web.config. Мне не нужно было изменять файл child.config.

Спасибо всем за помощь, спасли наши приклады.

Если (как я понимаю) вы пытаетесь полностью блокировать наследование в веб-конфигурации вашего дочернего приложения, я предлагаю вам избегать использования тега в web.config. Вместо этого создайте новый apppool и отредактируйте файл applicationHost.config (расположенный в% WINDIR% \ System32 \ inetsrv \ Config и% WINDIR% \ SysWOW64 \ inetsrv \ config). Вам просто нужно найти запись для вашего приложения и добавить атрибут enableConfigurationOverride="false" как в следующем примере:

    

Это позволит избежать наследования конфигурации в приложениях, обслуживаемых MyAppPool.

Matteo

Это страница microsoft в теге location : http://msdn.microsoft.com/en-us/library/b6x6shw7%28v=vs.100%29.aspx

Это может быть полезно некоторым людям.

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

Короче говоря, наш корневой сайт – это ASP.NET 3.5 (это 2.0 с добавленными конкретными библиотеками), и у нас есть вспомогательное приложение, которое представляет собой ASP.NET 4.0.

Наследование web.config заставляет суб-приложение ASP.NET 4.0 наследовать файл web.config родительского приложения ASP.NET 3.5.

Тем не менее, глобальный (или «root») веб-проект ASP.NET 4.0, который находится в C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ web.config и C: \ Windows \ Microsoft. NET \ Framework64 \ v4.0.30319 \ Config \ web.config (в зависимости от вашей битности) уже содержит эти разделы конфигурации.

Затем приложение ASP.NET 4.0 пытается объединить корневой ASP.NET 4.0 web.config и родительский web.config (тот, который используется для приложения ASP.NET 3.5), и запускается в дубликаты в узле.

Единственное решение, которое я смог найти, – удалить разделы конфигурации из родительского web.config, а затем либо

  1. Определите, что они вам не нужны в корневом приложении, или если вы
  2. Обновите родительское приложение до ASP.NET 4.0 (чтобы он получал доступ к конфигурационным файлам корневого web.config)
  • Замена конфигурации annotations для mvc: resources - Spring
  • Добавить MIME-сопоставление в web.config для IIS Express
  • Как выбрать другой app.config для нескольких конфигураций сборки
  • Как развернуть приложение на базе EJB на Tomcat
  • Создание нескольких разделов HTTP в Spring Security Конфигурация Java
  • Есть ли способ указать class реализации Doctrine2 Entitymanager в Symfony2?
  • Как правильно инициализировать log4j?
  • Использование другого Web.config в среде разработки и производства
  • Данный URL-адрес не разрешен конфигурацией приложения
  • Spring Boot - как настроить порт
  • Настройка кластера Hadoop - java.net.ConnectException: соединение отклонено
  • Interesting Posts

    Как создать многоцветную границу в css3

    Существуют ли какие-либо стандарты загрузки компьютеров на базе ARM?

    Как правильно обращаться с gzipped-страницей при использовании завитка?

    Как я могу извлечь из репозитория Git через HTTP-прокси?

    ASP.NET MVC – Как показать несанкционированную ошибку на странице входа?

    В streamах Java просматривается действительно только для отладки?

    Java: Тернар без возврата. (Для вызова метода)

    Включить заголовки при использовании SELECT INTO OUTFILE?

    Преобразование сплющенных иерархических данных из SQL Server в структурированный объект JSON с C # / Linq

    Как отключить новые для Windows 10 WinKey горячие клавиши?

    Проверьте, существует ли файл с использованием VBA

    Dll как в бункере, так и в gac, который используется?

    MySQL – Как найти точное совпадение слов, используя LIKE?

    Отправить уведомления на рабочем столе в Chrome или Firefox из закрытого веб-приложения?

    Использование java.util.Map в h: dataTable

    Давайте будем гением компьютера.