Asp.net mvc ASP.NET MVC3 IIS7.5:缓存控制最大值始终为0(不适用于客户端缓存)
我用Fiddler测试我的网站,发现web服务器总是返回Asp.net mvc ASP.NET MVC3 IIS7.5:缓存控制最大值始终为0(不适用于客户端缓存),asp.net-mvc,asp.net-mvc-3,caching,Asp.net Mvc,Asp.net Mvc 3,Caching,我用Fiddler测试我的网站,发现web服务器总是返回 Cache-Control: private, s-maxage=0 用于动态内容(MVC操作)。这将防止页面缓存在客户端。我想知道这是MVC还是IIS的问题。我怎样才能修好它?我真的需要客户端缓存才能工作 谢谢大家! 以下是完整的响应标题集: HTTP/1.1200ok 缓存控制:专用,s-maxage=0 内容类型:text/html;字符集=utf-8 内容编码:gzip 改变:接受编码 服务器:Microsoft IIS/7.5
Cache-Control: private, s-maxage=0
用于动态内容(MVC操作)。这将防止页面缓存在客户端。我想知道这是MVC还是IIS的问题。我怎样才能修好它?我真的需要客户端缓存才能工作
谢谢大家!
以下是完整的响应标题集:
HTTP/1.1200ok
缓存控制:专用,s-maxage=0
内容类型:text/html;字符集=utf-8
内容编码:gzip
改变:接受编码
服务器:Microsoft IIS/7.5
X-AspNetMvc-Version:3.0
X-AspNet-Version:4.0.30319
X-UA-兼容:IE=edge,Chrome=1
日期:2011年11月20日星期日23:07:46 GMT
内容长度:2050在控制器和/或操作上使用设置该控制器的操作或特定操作的缓存策略
[OutputCache( Location = OutputCacheLocation.Client, Duration = 600 )]
public class HomeController : Controller
{
..
}
谢谢您的回复!我实际上编写了一个自定义过滤器,只是忘记了ASPNET有现成的输出缓存:)顺便问一下,s-maxage=0代表什么?即使启用了缓存,它也为0。对于共享缓存(代理),它指定它应使用此值,而不是最大年龄值:0。我的问题正好相反。在IIS7.5上运行的MVC 3增加了缓存控制:对每个操作都是私有的,从而缓存浏览器中的每个页面。使用全局输出缓存筛选器解决了此问题。但是我没有弄清楚一开始是什么设置的。