IIS7:在子应用程序中禁用HttpModule - 站点,应用程序和虚拟目录

时间:2010-01-29 17:32:09

标签: asp.net iis-7 virtual-directory subapplication

我的应用程序中的“Cache”文件夹中有一些aspx文件,我不希望HttpModules为该文件夹中的那些文件运行。我尝试在子目录中有一个web.config,但是我知道HttpModules采用了根web.config而不是子目录。 Reference 1Reference2。所以我决定根据建议herehere将此目录作为子应用程序。

所以我配置我的应用程序,然后“添加应用程序”,将其映射到此目录,该目录已经在此应用程序和繁荣中,它失败了。它适用于静态html文件,但aspx文件不可用。

我的问题是,如何在IIS7中配置子应用程序,以便子应用程序可以拥有自己的web.config,然后我可以禁用根应用程序的HTTPModule

编辑:事实上我尝试在我的主应用程序中创建一个子应用程序,它不起作用。有人可以指出我在IIS7中如何配置子应用程序的任何文章吗?

Edit2:添加错误图像。那么我应该如何配置子应用程序池。子应用程序在与父

相同的应用程序池中运行

Edit3:抱歉,孩子正在另一个应用程序池上运行。通用应用程序工作(没有模块)。在我试用这些模块后,我正在给出答案。谢谢你的帮助。在我的父应用程序web.config中有一些特定的东西,我现在要去搜索。

alt text http://i49.tinypic.com/ibjhw4.jpg

编辑:实际上下面提供的答案都是正确的。如果您使用的是IIS7集成模式,那么您的模块应该在system.webServer中,如果是IIS7 - 经典模式,您的模块(和处理程序?)应该在system.web中

2 个答案:

答案 0 :(得分:8)

JKG对IIS6有正确的答案,但IIS7中的语法略有不同:

<system.webServer>
  <modules>
    <remove name="MyModule"/>
  </modules>
</system.webServer>

答案 1 :(得分:5)

如果web.config位于同一个Web应用程序中,它将始终从其父级继承,但您可以清除整个内容或删除项目,如下所示:

从子web.config(全部清除或删除项目)

<httpModules>
  <clear />
  <remove name="MyModule"/>
</httpModules>  

使用位置标记从父配置...

<location inheritInChildApplications="false">
  <system.web>
    <!-- ... -->
  </system.web>
</location>

http://www.jaylee.org/post/2008/03/Prevent-ASPNET-webconfig-inheritance-and-inheritInChildApplications-attribute.aspx