2011-06-23 43 views
1

我有设置响应的缓存控制标头的ASP.NET MVC操作筛选器。除了当我将它发布到Web服务器时,它一切正常。服务器上的ASP.NET缓存控制更改

当我通过本地主机上运行它,我得到如下:

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运行被清除出去了,我不明白出来。

唯一的区别是我可以认为开发网站通过卡西尼网络服务器和生活是IIS所以也许IIS正在清除最大年龄?

我必须做什么来保持缓存控制头中的最大年龄值?

编辑: 这是web.config中的system.webserver节点的图片,以防可能出现的情况。

web.config

+0

你检查在IIS中的HTTP标头选项卡? – Jay

+0

@Jay我只是修改它在两个HTTP头标签中过期,但仍然没有响应头的变化。它可以是我的web.config?也许有些HttpModule会搞乱头文件? – Jose

+0

我对此表示怀疑。对此不能100%,但IIS是最后一次触发响应的人。从那一刻起,外部服务器/网络节点可能正在播放这些头文件? – Jay

回答

1

查找和检查您的配置文件中的< clientCache/>线。尝试将cacheControlMode设置为UseMaxAge,如果还不是这种情况。

例如:< clientCache cacheControlMode = “UseMaxAge” cacheControlMaxAge = “10:00:00”/ >

+0

做到了,但没有运气。另外,它看起来像只有IIS 7 +支持clientcache指令http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache – Jose

+0

我很抱歉 - 没有注意到您使用的是IIS6。你可能已经尝试过了,但如果没有,可以尝试在IIS中设置CacheControlMaxAge,如下所述:http://msdn.microsoft.com/en-us/library/ms524623(v=vs.90).aspx。我试着在Fiddler中检查它,它的工作原理。除此之外,我没有任何其他想法。 – sshah

+0

我该如何去编辑元数据库?从来没有这样做。 – Jose