我知道这已经被问到here但是答案(使用处理程序代替)并没有解决问题,因为我使用的是没有实现IHttpHandler的第三方组件。
那么,有没有办法在某个请求上加载/卸载HttpModule?
编辑:我忘了提到我们正在使用.NET 2.0。抱歉,我很抱歉。答案 0 :(得分:1)
我没有对此进行测试,但comment in this article似乎表明可以使用<location
&gt;注册仅针对特定位置的模块。 web.config中的元素,例如:
<location path="some/path">
<system.web>
<httpModules>
<remove name="name"/>
<add name="name" type="type"/>
</httpModules>
</system.web>
</location>
答案 1 :(得分:0)
我认为问题在于HttpModule的继承问题,您是否需要使用第三方控件继承web.config?
尝试添加此属性,其中路径将是存储组件的位置;
<location path="/ThirdPartyComponents" inheritInChildApplications="false">
...
</location>
答案 2 :(得分:0)
你可以做到这一点的一种方法是使用包装模块。在您的应用程序中注册一个httpModule,然后在此模块中创建与运行其他模块相对应的规则。您可以访问请求对象,这样您就可以检测到所获得的请求类型,并将逻辑路由到相关(自定义)模块。