ASP.NET MVC: OutputCache 和 HTTP 头 - 缓存控制 (Cache-Control)

3
我刚开始在一些控制器操作中使用OutputCache,但是我没有得到我期望的响应。
基本上,我设置了Location = OutputCacheLocation.Any,而http头如下:
Server              ASP.NET Development Server/9.0.0.0
Date                Wed, 15 Jul 2009 02:14:21 GMT
X-AspNet-Version    2.0.50727
X-AspNetMvc-Version 1.0
Content-Encoding    gzip
Cache-Control       private, max-age=3600
Expires             Wed, 15 Jul 2009 02:14:21 GMT
Last-Modified       Wed, 15 Jul 2009 02:14:20 GMT
Vary                *
Content-Type        text/html; charset=utf-8
Content-Length      640
Connection          Close

现在,如果我的理解是正确的,设置Cache-Control部分为private意味着它只会在客户端上缓存。我也需要在任何代理服务器上缓存。
我本来以为通过设置OutputCacheLocation.Any,Cache-Control应该是public, max-age=3600之类的东西。据我所知,private表示它只会在客户端上缓存,而不是由“任何”(即代理服务器)缓存(请参见http://msdn.microsoft.com/en-us/library/system.web.httpcacheability.aspx)。
有什么想法吗?
谢谢 安东尼

你尝试过将网站发布到IIS并查看那里的标头吗?与开发服务器上的是否相同? - womp
我目前只在VS中尝试过。你认为会有什么区别吗? - vdh_ant
当我将其放到测试网站上时,它变成了公开的。 - vdh_ant
1个回答

1

请参考上面的评论解决方案。

编辑

此评论被视为答案:

您是否尝试将网站发布到 IIS 并查看那里的标头?它与开发服务器上的是否相同? -


@Rock:OP自问自答不会获得声望。 - Robert Harvey
1
啊,好的。我没有看到是谁在问问题。但这仍然不应该成为SO档案中有效的“答案”。 - Chase Florell
2
我认为这是有效的。我不在乎谁得到积分,但从(查看计数)的外观来看,其他人也遇到了同样的问题,并且这个解决方法很有帮助。如果你想从@womp的评论中获得答案,我会接受这个答案。这不是我的错,他回答的方式就是这样。 - vdh_ant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接