ASP.NET staticContent配置选项不起作用

时间:2012-02-23 20:57:36

标签: asp.net asp.net-mvc-3 caching

我在VS10 Dev服务器下运行了一个ASP.NET站点。我希望某些静态内容文件能够使用长的max-age缓存指令,但似乎无法使其正常工作。

我在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

2 个答案:

答案 0 :(得分:1)

  

我解决了这个问题!在Web.config中,将身份验证部分打开到FormsAuthentication。

这非常有帮助。我通常不会发表评论,但在这种情况下,我认为这会对其他人有所帮助。在我的情况下,缓存控件设置为私有,我无法修改它。这个模糊的答案是我打开了身份验证,当时我不需要或不想要它。我会说从搜索引擎获得提示需要更长的时间,也许这个文本会有所帮助。

答案 1 :(得分:0)

我解决了这个问题!在Web.config中,将身份验证部分打开到FormsAuthentication。