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

ram*_*ram 7 asp.net iis-7 virtual-directory subapplication

我在我的应用程序的"Cache"文件夹中有一些aspx文件,我不希望HttpModules为该文件夹中的那些文件运行.我尝试在子目录中有一个web.config,但是我知道HttpModules采用了根web.config而不是子目录. 参考文献1,参考文献2.所以我决定将此目录作为子应用程序按照此处此处的建议.

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

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

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

Edit2:添加错误图像.那么我应该如何配置子应用程序池.子应用程序在与父项相同的应用程序池中运行

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

替代文字http://i49.tinypic.com/ibjhw4.jpg

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

Mat*_*lly 8

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

<system.webServer>
  <modules>
    <remove name="MyModule"/>
  </modules>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)


JKG*_*JKG 5

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

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

<httpModules>
  <clear />
  <remove name="MyModule"/>
</httpModules>  
Run Code Online (Sandbox Code Playgroud)

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

<location inheritInChildApplications="false">
  <system.web>
    <!-- ... -->
  </system.web>
</location>
Run Code Online (Sandbox Code Playgroud)

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