2012-02-23 51 views
2

我有一個在VS10 Dev服務器下運行的ASP.NET網站。我希望某些靜態內容文件可以用最長時間的緩存指令提供,但似乎無法使其工作。ASP.NET靜態內容配置選項不起作用

我有這個在我的web.config:

<system.webServer> 
<caching enabled="true" enableKernelCache="true">  
</caching> 
<httpProtocol> 
    <customHeaders> 
    <remove name="X-Powered-By" /> 
    </customHeaders> 
</httpProtocol> 
<validation validateIntegratedModeConfiguration="false"/> 
<modules runAllManagedModulesForAllRequests="true"/>  

而且在內容文件夾中緩存

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
    <staticContent> 
      <clientCache cacheControlMode="UseMaxAge" 
cacheControlMaxAge="30.00:00:00" /> 
     </staticContent> 
     </system.webServer> 
    </configuration> 

但它也不管用,它總是與服務Cache-Control:private

那麼,是否支持staticContent配置?如果沒有,任何解決方法?如果是這樣,我錯過了什麼?

頁眉我在所有的請求得到:

Server: ASP.NET Development Server/10.0.0.0 
Date: Thu, 23 Feb 2012 20:47:56 GMT 
Cache-Control: private 
Content-Type: application/octet-stream 
Content-Length: 1043 
Connection: Close 
+0

您是否在web.config中有

2012-02-23 22:59:40

+0

你看過這個嗎? http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache – Aristos 2012-02-23 23:07:47

+0

也許你在你的程序中的其他地方設置標題(例如global.asax) – Aristos 2012-02-23 23:09:31

回答

0

我解決了這個問題!在Web.config中打開身份驗證部分以FormsAuthentication。

+0

你可能想稍微詳細說明答案,然後接受它讓別人知道你的問題現在已經解決了。 – dasblinkenlight 2013-01-30 17:25:14

1

我解決了這個問題!在Web.config中打開身份驗證部分以FormsAuthentication。

這是非常有幫助的。我通常不會發表評論,但在這種情況下,我認爲這會幫助其他人。在我的情況下,緩存控制被設置爲私人,我無法修改它。晦澀的答案是我打開了身份驗證,當我不需要或不需要它時。我會說,從搜索引擎獲得提示需要更長的時間,也許這段文字會有所幫助。