我知道這已被問here但答案(使用處理程序代替)不能解決問題,因爲我使用的是不實現IHttpHandler的第三方組件。在某些位置禁用HttpModule
那麼,有沒有辦法在某個請求上加載/卸載HttpModule?
編輯:我忘了提及我們正在使用.NET 2.0。對於僞造它我感到抱歉。
我知道這已被問here但答案(使用處理程序代替)不能解決問題,因爲我使用的是不實現IHttpHandler的第三方組件。在某些位置禁用HttpModule
那麼,有沒有辦法在某個請求上加載/卸載HttpModule?
編輯:我忘了提及我們正在使用.NET 2.0。對於僞造它我感到抱歉。
我沒有測試這一點,但一個comment in this article似乎表明,有可能通過在web.config中使用<location
>元素僅登記特定位置的模塊,例如:
<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,然後在該模塊中創建與運行其他模塊相對應的規則。您可以訪問請求對象,因此您應該能夠檢測到您獲取的請求類型,並將邏輯路由到相關(自定義)模塊。
我們已經試過了,但由於某種原因,它不適用於我們:( – 2009-05-26 16:05:15
我會將其標記爲答案,直到我爲我們的特定問題提出更好的解決方案,好像它不是因爲一個引渡原因 – 2009-06-15 07:39:36