【问题标题】:Can't set HTTP Vary header in ASP.NET/IIS7 classic mode无法在 ASP.NET/IIS7 经典模式下设置 HTTP Vary 标头
【发布时间】:2010-01-16 01:52:53
【问题描述】:

首先,有一点背景。我为 ASP.NET 编写了一个自定义 HTTP 压缩模块。我的开发机器有Windows 7 Ultimate,它带有IIS7。我的生产环境使用 IIS6。

我遇到的问题是,Resource Expert Droid (redbot.org) 告诉我,我需要在响应中添加标头以正确支持压缩:“Vary: Accept-Encoding”

在集成模式下的 IIS7 上,它可以正常工作。但是,在经典模式下,这是我的应用程序最终运行的方式,我无法让我的代码使用 Response.AppendHeader()、Response.Cache.SetVaryByCustom() 或 Response.Cache.VaryByHeaders 中的任何一个来输出此标头。

我正在使用通配符处理程序映射,因此 ASP.NET 即使在经典模式下也能看到所有请求。

【问题讨论】:

    标签: asp.net iis-7 http-headers


    【解决方案1】:

    我知道你说过你已经尝试过了,但这是通常的方法:

    this.Response.Cache.SetVaryByCustom("Accept-Encoding");
    

    您可以尝试在生命周期的后期调用该方法,例如从 HttpModule 中的End_Request

    如果这不起作用,很遗憾,在 IIS6 中,您将需要使用 ISAPI 来设置自定义 HTTP 标头。

    FWIW,内置压缩系统应该会自动为您设置该标头。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 2014-07-31
      • 1970-01-01
      • 1970-01-01
      • 2017-07-20
      • 2010-10-26
      相关资源
      最近更新 更多