2008-10-09 37 views
18

我正在使用IIS6,我寫了一個HttpModule,並且出現此錯誤?在Google搜索後,我發現這個問題是由.NET Framework 3.5引起的,所以我把它放在一臺沒有安裝.NET 3.5的機器上,但問題仍然存在!IIS6 + HttpModule:此操作需要IIS集成管道模式

+0

你能在你的模塊做詳細點嗎? – AnthonyWJones 2008-10-09 09:49:00

+0

檢查用戶的密碼是否被顯示,然後強制他改變它。 – sdhjl2000 2008-10-09 10:28:56

回答

7

只有IIS7支持集成管道。在IIS7上,HttpModule可以參與所有到達Web服務器的請求,而不僅僅是那些針對特定文件擴展名的請求。

II6使用IIS7調用的經典管道,一旦HttpModules只能在早期的基於ISAPI的管道確定腳本映射需要切換到ASP.NET的請求時才能參與。

39

我在心理調試的企圖:你使用像一個語句:

Response.Headers("X-Foo") = "bar" 

如果情況確實如此,改變這個如下圖所示將解決此問題:

Response.AddHeader("X-Foo", "bar") 
6

剛剛遇到這個問題。使用IIS6和.NET 3.5。修復我是使用Response.AddHeader而不是Response.Headers.Add。 HTH。

0

受其他答案的啓發,我發現它正在訪問Response.Headers對象,導致「操作需要IIS集成管道模式」異常。

避免.Headers和調用其它(老的?)的輔助功能,如:(!在我的情況)

  • Response.AddHeader()
  • Response.ClearHeaders()
相關問題