首先,一点背景。我为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也会查看所有请求。
答案 0 :(得分:3)
我意识到你说你已经尝试过了,但这是通常的方法:
this.Response.Cache.SetVaryByCustom("Accept-Encoding");
您可以尝试在生命周期的后期调用该方法,例如在HttpModule中从End_Request
调用。
如果这不起作用,遗憾的是,在IIS6中,您将需要使用ISAPI来设置自定义HTTP标头。
FWIW,内置压缩系统应自动为您设置标题。