我的一个网络应用程序中有一个虚拟目录设置,它不需要继承主应用程序的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处理程序”
答案 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上继承。