2009-06-26 3 views
8

OkКак остановить наследование web.config

У меня есть ASP .NET 3.5 Сайт в IIS6 на Windows Server 2003 (32-х).

с помощью ASP.NET 1.1 WebApplication в суб-виртуальном каталоге. (он настроен на использование более старой версии 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, но он стонет о веб-сайте (как и в .net 3.5 one) web.config и как он не понимает атрибут type в теге sectionGroup.

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

ответ

4

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

я в конечном итоге положить все конфигурации в .net 2.0 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

В большинстве разделов в Web.config может быть добавлен тег - возможно, стоит добавить это в затронутые разделы, чтобы узнать, разрешает ли он ваш запрос наследования (см. Is it possible to completely negate a "higher" web.config in a subfolder? для некоторых предостережений, которые нужно соблюдать) ,

8
<location path="." inheritInChildApplications="false"> 
    <system.web> 
    ... 
    </system.web> 
</location> 
+0

Кроме того, убедитесь, что вы создали «Виртуальный каталог» для подпапки в IIS. –

+1

Это работает только в том случае, если родительский и дочерний объекты являются приложениями .NET 2.0. –

+2

... и только имеет значение, если что-то внутри system.web вызывает проблемы. В вопросе говорится, что он перечисляет элемент sectionGroup в ошибке, который не будет исправлен этим. –