无法在ASP.NET / IIS7经典模式下设置HTTP Vary标头

时间:2010-01-16 01:52:54

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

首先,一点背景。我为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也会查看所有请求。

1 个答案:

答案 0 :(得分:3)

我意识到你说你已经尝试过了,但这是通常的方法:

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

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

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

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