Вопрос по asp.net, c# – Как остановить наследование web.config

8

Хорошо

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

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

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

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

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

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

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

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

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

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

Ваш Ответ

3   ответа
0

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

4

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

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

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

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

The configuration systems for both ASP.NET 1.1 and 2.0 are hierarchichal. As a result if a different framework version is a child of the root website (which is usually inetpub\wwwroot), then the configuration system in the child will attempt to merge the configuration from the root website. This behavior is by design since both the 1.1 and 2.0 configuration systems walk up the physical directory structure looking for parent web.configs.

A simple workaround is to move the common 2.0 configuration information to the root web.config file for the 2.0 framework. The root web.config is located at: C:\windows\Microsoft.NET\Framework\v2.0.50727\CONFIG. With this approach all of your 2.0 applications will pick up the common sections while 1.1 applications won't see the sections.

Thank you for submitting this issue. Hope the above information is useful for you.

Posted by Microsoft on 22/02/2008 at 17:35

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

Дэн

8
<location path="." inheritInChildApplications="false">
  <system.web>
    ...
  </system.web>
</location> 
Error: User Rate Limit Exceeded danswain
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы