【问题标题】:IIS6 + HttpModule: This operation requires IIS integrated pipeline modeIIS6 + HttpModule:此操作需要IIS集成管道模式
【发布时间】:2010-09-16 05:43:23
【问题描述】:

我正在使用 IIS6,我写了一个 HttpModule,我得到了这个错误?上网查了一下,发现这个问题是.NET framework 3.5引起的,所以我把这个放到我没有安装.NET 3.5的机器上,但是问题依旧!

【问题讨论】:

  • 您能详细说明您的模块在做什么吗?
  • 检查用户密码是否过期,然后强制他更改。
  • 您需要提供显示错误发生位置的代码。

标签: iis-6 httpmodule


【解决方案1】:

我的心理调试尝试:您使用的语句如下:

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

如果确实如此,如下所示进行更改将解决该问题:

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

【讨论】:

  • response.Headers.Location = new Uri(...); 会破坏 IIS6 并给出 500 Internal Server Error
【解决方案2】:

只有 IIS7 支持集成管道。在 IIS7 上,HttpModule 可以参与到 Web 服务器的所有请求,而不仅仅是针对特定文件扩展名的请求。

II6 使用 IIS7 所称的经典管道,其中只有在早期基于 ISAPI 的管道确定脚本映射需要将请求移交给 ASP.NET 时,HttpModules 才能参与其中。

【讨论】:

    【解决方案3】:

    刚刚遇到这个问题。使用 IIS6 和 .NET 3.5。我的解决方法是使用Response.AddHeader 而不是Response.Headers.Add。 HTH。

    【讨论】:

      【解决方案4】:

      受其他答案的启发,我发现它正在访问导致“操作需要 IIS 集成管道模式”异常的Response.Headers 对象

      避免使用.Headers 并调用其他(旧的?)辅助函数,例如:

      • Response.AddHeader()
      • Response.ClearHeaders()(就我而言!)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多