2008-10-09 39 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()
相关问题