如何将我的Web应用程序的单个虚拟目录设置为不继承web.config?

时间:2010-05-26 15:24:31

标签: asp.net iis-6 web-config

我的一个网络应用程序中有一个虚拟目录设置,它不需要继承主应用程序的web.config,因此它可以独立运行。我想知道我怎么能这样做,因为现在当我点击它(mainwebapp.domain.com/virdir)时它会抛出一个错误,说它无法找到主应用程序web.config中列出的一些依赖项(显示主应用程序)错误消息中的web.config),这个virdir包含它自己的小应用程序,只需要独立运行。

以下是问题区域:

Line 143:      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
Line 144:      <add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 145:      <add verb="*" path="weborb.aspx" type="Weborb.ORBHttpHandler" />
Line 146:      <add verb="*" path="codegen.aspx" type="Weborb.Management.CodeGen.CodegeneratorHttpHandler" />
Line 147:     <!--elm <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> elm-->

错误在第145行:“无法加载类型'Weborb.ORBHttpHandler'。” (这是显示错误的父web.config,我不想修改)...

如果我将<clear/>添加到子web.config中同一个块的顶部,那么我得到:

“找不到请求类型'GET'的http处理程序”

1 个答案:

答案 0 :(得分:1)

在你的情况下,你想使用remove(把它放在第一位)

  <remove verb="POST,GET,HEAD" path="elmah.axd" />

其他选项:

如果您可以更改主应用程序,请执行以下操作。

 <location path="." inheritInChildApplications="false">
     <!-- settings --> 
  </location>

如果你想覆盖继承的内容,通常可以使用(例如来自子web.config的一个模糊

<compilation debug="true">
        <assemblies>
            <clear/>
            <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>
    </compilation>

MSDN Guide在Web.Config上继承。