代码之家  ›  专栏  ›  技术社区  ›  danswain

如何停止web.config继承

  •  8
  • danswain  · 技术社区  · 15 年前

    好啊

    我在WindowsServer2003(32位)的iis6中有一个ASP.NET 3.5网站。

    在子虚拟目录中使用ASP.NET 1.1 Web应用程序。(这被设置为使用旧的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中的)web.config以及它如何不理解sectiongroup标记上的type属性。

    我做错什么了?请告诉我这很明显。谢谢

    3 回复  |  直到 15 年前
        1
  •  8
  •   Kyle B.    15 年前
    <location path="." inheritInChildApplications="false">
      <system.web>
        ...
      </system.web>
    </location> 
    
        2
  •  4
  •   danswain    15 年前

    为了让大家知道,我找到了一个符合我目前目的的答案。

    我最终把所有配置都放到了.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.config,因此这种行为是按设计的。

    一个简单的解决方法是移动 通用2.0配置信息 到根web.config文件 2框架。根web.config位于: C:\windows\microsoft.net\framework\v2.0.50727\config。 使用这种方法,所有的2.0 应用程序将使用 而1.1应用程序不会 参见章节。

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

    微软于2008年2月22日发布于 17:35

    似乎对我有用,尽管它不像.NET 2.0应用程序那样优雅。希望这能帮助别人。

        3
  •  0
  •   Community CDub    8 年前

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