如何停止web.config继承

时间:2009-06-26 14:54:59

标签: c# asp.net web-config

好的

我在Windows Server 2003(32位)上的IIS6中有一个Asp .net 3.5网站。

在子虚拟目录中使用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,但它对webSite(如.net 3.5中的)web.config以及它如何不理解的类型属性抱怨sectionGroup标签。

我做错了什么?请告诉我这是显而易见的事情。感谢

3 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分: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 \框架\ V2.0.50727 \ CONFIG。   用这种方法你所有的2.0   应用程序将获得共同点   部分虽然1.1申请不会   见章节。

     

感谢您提交此问题。   希望以上信息有用   对你而言。

     

微软于2002年2月22日发表于   17时35分

似乎对我有用,虽然它不像它是.net 2.0应用程序那么优雅。希望这有助于其他人。

答案 2 :(得分:0)

Web.config中的大多数部分都可以添加一个标记 - 可能值得将其添加到受影响的部分以查看它是否解决了继承探测(请参阅Is it possible to completely negate a "higher" web.config in a subfolder?以了解一些注意事项对)。