我有ASP.NET MVC操作过滤器,用于设置响应的缓存控制标头。一切正常,除非我将它发布到Web服务器。
当我通过localhost运行时,我得到以下内容:
Cache-Control:public, max-age=172800
Connection:Close
Content-Length:15057
Content-Type:application/pdf
Date:Thu, 23 Jun 2011 17:09:09 GMT
Server:ASP.NET Development Server/9.0.0.0
X-AspNet-Version:2.0.50727
X-AspNetMvc-Version:2.0
在实时网站上运行时
Cache-Control:public
Content-Length:15057
Content-Type:application/pdf
Date:Thu, 23 Jun 2011 17:09:45 GMT
Server:Microsoft-IIS/6.0
X-AspNet-Version:2.0.50727
X-AspNetMvc-Version:2.0
X-Powered-By:ASP.NET
因此出于某种原因,max-age
被清除,我无法理解。
我能想到的唯一区别是开发站点通过Cassini Web服务器,而live是IIS,所以IIS可能正在清除max-age?
如何在缓存控制标头中保留max-age值?
修改 这是web.config中system.webserver节点的图片,以防有可能看到的东西。
答案 0 :(得分:1)
查找并检查< clientCache />您的配置文件中的行。尝试将cacheControlMode设置为UseMaxAge(如果情况并非如此)。
例如:< clientCache cacheControlMode =“UseMaxAge”cacheControlMaxAge =“10:00:00”/>