Как остановить наследование web.config - PullRequest
8 голосов
/ 26 июня 2009

ОК

У меня есть сайт Asp .net 3.5 в IIS6 на Windows Server 2003 (32 бита).

с веб-приложением Asp.Net 1.1 в суб-виртуальном каталоге. (он настроен на использование более старой версии 1.1 .net и настроен со своим собственным пулом приложений. Таким образом, для всех намерений и целей он полностью отделен.

За исключением того, что он продолжает наследовать .net 3.5 web.config корневого сайта.

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

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

к корневым сайтам web.config, но, похоже, это не работает.

Странно, ошибка на самом деле

<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

, который сообщается из среды выполнения .net 1.1 с указанием пути к веб-сайту WEBSITE / OLD_WEBAPP, но он жалуется на webSite (как в .net 3.5 one) web.config и на то, что он не понимает атрибут type в тег sectionGroup.

Что я делаю не так? Пожалуйста, скажи мне, что это что-то очевидное. Спасибо

Ответы [ 3 ]

8 голосов
/ 26 июня 2009
<location path="." inheritInChildApplications="false">
  <system.web>
    ...
  </system.web>
</location> 
4 голосов
/ 30 июня 2009

Просто чтобы все знали, я нашел ответ, который на данный момент служит моим целям.

Я закончил тем, что поместил всю конфигурацию в .net 2.0 global web.config

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG

Я получил это предложение от этого комментария на connect.microsoft.com

Системы конфигурации для ASP.NET 1.1 и 2.0 являются иерархическими. В результате, если другая версия фреймворка является дочерней по отношению к корневому веб-сайту (обычно это inetpub \ wwwroot), тогда дочерняя система конфигурации попытается объединить конфигурацию с корневым веб-сайтом. Такое поведение является заданным, поскольку обе системы конфигурации 1.1 и 2.0 поднимаются по структуре физического каталога в поисках родительского web.configs.

Простой обходной путь - переместить общая информация о конфигурации 2.0 в корневой файл web.config для 2.0 фреймворк. Корень web.config находится по адресу: C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG. При таком подходе все ваши 2.0 приложения подберут общее разделы в то время как 1.1 приложения не будут см. разделы.

Спасибо за отправку этой проблемы. Надеюсь, что приведенная выше информация полезна для вас.

Опубликовано Microsoft 22.02.2008 в 17: 35

Кажется, работает для меня, хотя это не так элегантно, как если бы это было приложение .net 2.0. Надеюсь, это поможет кому-то еще.

Dan

0 голосов
/ 26 июня 2009

Большинство разделов в Web.config могут иметь тег, добавленный к ним - возможно, стоит добавить его в затронутые разделы, чтобы посмотреть, решит ли он вашу проблему наследования (см. Можно ли полностью отрицать " выше "web.config в подпапке? для некоторых предостережений, на которые следует обратить внимание).

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