我正在使用IIS6,我写了一个HttpModule,我收到此错误?在谷歌搜索网络后,我发现这个问题是由.NET framework 3.5引起的,所以我把它放在我没有安装.NET 3.5的机器上,但问题仍然存在!
答案 0 :(得分:39)
我尝试进行通灵调试:你使用的语句如下:
Response.Headers("X-Foo") = "bar"
如果情况确实如此,如下所示更改此问题将解决此问题:
Response.AddHeader("X-Foo", "bar")
答案 1 :(得分:7)
只有IIS7支持集成管道。在IIS7上,HttpModule可以参与所有进入Web服务器的请求,而不仅仅是那些针对特定文件扩展名的请求。
II6使用IIS7调用经典管道的地方,一旦早期的基于ISAPI的管道确定脚本映射需要将请求移交给ASP.NET,HttpModules才能参与其中。
答案 2 :(得分:6)
刚遇到这个问题。使用IIS6和.NET 3.5。对我而言,修复是使用Response.AddHeader
而不是Response.Headers.Add
。 HTH。
答案 3 :(得分:0)
受到其他答案的启发,我发现它正在访问导致“操作需要IIS集成管道模式”异常的Response.Headers
对象。
避免.Headers
并调用其他(较旧的?)辅助函数,如:
Response.AddHeader()
和Response.ClearHeaders()
(在我的情况下!)