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