我知道这里已经问过这个问题,但是答案(使用处理程序代替)并不能解决问题,因为我使用的是不实现 IHttpHandler 的第三方组件。
那么,再一次,有没有办法在某个请求上加载/卸载 HttpModule?
编辑:我忘了提到我们正在使用 .NET 2.0。我很抱歉忘记了它。
我知道这里已经问过这个问题,但是答案(使用处理程序代替)并不能解决问题,因为我使用的是不实现 IHttpHandler 的第三方组件。
那么,再一次,有没有办法在某个请求上加载/卸载 HttpModule?
编辑:我忘了提到我们正在使用 .NET 2.0。我很抱歉忘记了它。
我没有对此进行测试,但本文中的评论似乎表明可以通过<location
在 web.config 中使用 > 元素仅为某些位置注册模块,例如:
<location path="some/path">
<system.web>
<httpModules>
<remove name="name"/>
<add name="name" type="type"/>
</httpModules>
</system.web>
</location>
我假设问题出在 HttpModule 的继承上,您是否需要通过第三方控件继承 web.config?
尝试在路径将存储组件的位置添加此属性;
<location path="/ThirdPartyComponents" inheritInChildApplications="false">
...
</location>
你可以做到这一点的一种方法是使用包装模块。向您的应用程序注册一个 httpModule,然后在此模块中创建与运行其他模块相对应的规则。您可以访问请求对象,因此您应该能够检测到您收到的请求类型并将逻辑路由到相关(自定义)模块。