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

发布于 2024-08-19 19:12:20 字数 1446 浏览 6 评论 0原文

我的应用程序的“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.

alt text

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一抹淡然 2024-08-26 19:12:20

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

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

JKG has the right answer for IIS6, but the syntax is a little different in IIS7:

<system.webServer>
  <modules>
    <remove name="MyModule"/>
  </modules>
</system.webServer>
执笏见 2024-08-26 19:12:20

如果 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

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)

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

From the parent config by using the location tag...

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文