【发布时间】:2010-02-07 05:04:57
【问题描述】:
我有一个 .net 网站,其中包含我为执行某些任务(授权等)而编写的 IHttpModule。但在网站内,有许多虚拟目录映射到第三方应用程序,很遗憾我无法更改或移动这些应用程序(例如社区服务器论坛、adxstudio cms 等)。
我正在寻找一种方法来阻止我的 IHttpModule 在对这些虚拟目录的内容发出请求时运行。这可能吗?
[编辑 - 添加以下内容]
我一直在尝试在虚拟目录应用程序的 Web.config 文件中的 <httpModules> 节点中添加 <remove name="X"/>,但似乎没有成功。这可能也不是一个很好的解决方案,因为第三方应用程序可以更新,所以我不想要求更改他们的代码/配置。
我还尝试在父 Web.config 中的 <system.web> 节点周围添加一个 <location path="." inheritInChildApplications="false">,但这似乎也不起作用。
[再次编辑 - 添加更多]
原因不起作用是因为 IHttpModule 的 Init 事件在每个应用程序生命周期中只触发一次(而不是我假设的每个请求)。由于我在 init 事件中添加了一堆事件监听器,这些监听器仍然会在后续请求中触发......
【问题讨论】:
标签: c# .net iis virtual-directory ihttpmodule