2011-06-23 121 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