代码之家  ›  专栏  ›  技术社区  ›  Taudris

无法在asp.net/iis7经典模式下设置http vary头

  •  2
  • Taudris  · 技术社区  · 15 年前

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

    我遇到的问题是,资源专家droid(redbot.org)告诉我需要在响应中添加一个头来正确支持压缩:“vary:accept-encoding”

    在集成模式下的IIS7上,它工作正常。但是,在应用程序最终运行的经典模式下,我无法使用response.appendheader()、response.cache.setvarybycustom()或response.cache.varybyHeaders中的任何一个来获取输出此头的代码。

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

    1 回复  |  直到 15 年前
        1
  •  3
  •   RickNZ    15 年前

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

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

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

    如果这不起作用,不幸的是,在iis6中,您需要使用isapi来设置自定义HTTP头。

    fwiw,内置的压缩系统应该为您自动设置报头。

    推荐文章