IIS7:在子应用程序中禁用 HttpModule - 站点、应用程序和虚拟目录
我的应用程序的“Cache”文件夹中有一些 aspx 文件,我不希望 HttpModules 为该文件夹中的这些文件运行。我尝试在子目录中有一个 web.config,但了解到 HttpModules 采用根 web.config 而不是子目录的根。 参考文献 1,参考2。因此,我决定按照建议将此目录作为子应用程序 此处 和 此处。
所以我配置我的应用程序,然后“添加应用程序”,将其映射到这个目录,该目录已经在这个应用程序中,然后繁荣,它失败了。它适用于静态 html 文件,但 aspx 文件不可用。
我的问题是,如何在 IIS7 中配置子应用程序,以便子应用程序可以拥有自己的 web.config,并且我可以禁用根应用程序的 HTTPModules
编辑:事实上,我尝试在主应用程序中创建子应用程序但它不起作用。有人可以给我指点一篇关于如何在 IIS7 中配置子应用程序的文章吗?
Edit2:添加错误图像。那么我应该如何配置子应用程序池。子应用程序与父应用程序在同一应用程序池中运行
Edit3:抱歉,子应用程序在不同的应用程序池上运行。一个通用的应用程序可以工作(没有模块)。我在尝试模块后标记答案。感谢你们的帮助。我的父应用程序 web.config 中有一些特定的内容,我现在要查找它。
编辑:实际上下面提供的两个答案都是正确的。如果您使用 IIS7 集成模式,您的模块应该位于 system.webServer 中,如果使用 IIS7 - 经典模式,您的模块(和处理程序?)应该位于 system.web
I have a few aspx files in a "Cache" folder in my application and I do not want HttpModules to run for those files in that folder. I tried having a web.config in subdirectory but learned that HttpModules take the root web.config and not that of the subdirectory.
Reference 1, Reference2. So I decided to have this directory as a sub application as per suggestion here and here.
So I configure my application,then "add application" , map it to this directory, which already was inside this application and boom, it fails. It works for a static html file, but aspx files are not available.
My question is, how do I configure a sub-application in IIS7 so that the sub-application can have its own web.config and there I can disable HTTPModules of the root application
Edit:In fact I tried creating a subapplication within my main application and it did not work. Can some one point me to any article on how to configure a sub-application in IIS7 ?
Edit2: adding the error image. So how should I configure the child app pool. The child app runs in the same app pool as that of parent
Edit3: sorry, the child was running on a different app pool. A generic app worked(without modules). I am marking the answer after I try out the modules.Thanks for your help guys. There is something specific in my parent app web.config, which I am going to hunt down now.
EDIT: Actually both the answers provided below are correct. If you are using IIS7 integrated mode your modules should be in system.webServer and if IIS7 - classic mode your modules (and handlers?) should be in system.web
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
JKG 对于 IIS6 有正确的答案,但在 IIS7 中语法有点不同:
JKG has the right answer for IIS6, but the syntax is a little different in IIS7:
如果 web.config 位于同一个 Web 应用程序中,则它将始终从其父级继承,但您可以清除整个内容或删除项目,如下所示:
从子 web.config (清除全部或删除项目)
从父级配置使用位置标记...
http://www.jaylee.org/post/2008/03/Prevent-ASPNET-webconfig-inheritance-and-inheritInChildApplications-attribute.aspx
The web.config will always inherit from its parent if it's in the same web application but you can clear the entire thing or remove an item like so:
From the child web.config (clear all or remove an item)
From the parent config by using the location tag...
http://www.jaylee.org/post/2008/03/Prevent-ASPNET-webconfig-inheritance-and-inheritInChildApplications-attribute.aspx