我有一個網站使用ISAPI Rewrite以及一個自定義HttpModule,這兩個Url重定向和重寫。IIS7 HttpModule和ISAPI篩選器執行順序
在IIS 6中,一切工作正常:ISAPI重寫過濾器將首先運行,其次是HttpModule。在IIS 7(集成模式)中,順序現在是相反的,這是一個問題。
我的問題,特別是,HttpModule有一個條件,它將使用context.RewritePath
發出Url重寫。如果沒有提供文檔,它將顯式地將「index.aspx」添加到路徑中,因此請求/test/
被重寫爲/test/index.aspx
。
在重寫路徑後的某一時刻,ISAPI重寫篩選器將執行。我們有一個與模塊相反的規則:對/test/index.aspx
的請求獲得301-重定向到/test/
。因此,我們有一個無限循環。
在IIS 7中如何確定HttpModules和ISAPI過濾器的執行順序?訂單可以更改嗎?我發現this question,但它並沒有真正的幫助。我不是IIS 7的主人,但我確實在一定程度上理解模塊和ISAPI過濾器「一起」運行。不幸的是,他們仍然以不同的方式進行管理,我無法弄清楚如何迫使他們先於另一個人跑。幫幫我!
注意:假設我無法更改現有的代碼。它在IIS 6中工作。我只是想知道是否有辦法使它在IIS 7集成模式下工作。