Asp.net 为什么我的应用程序缓存不使用OutputCache
我无法解释为什么我的应用程序没有缓存首页 我在页面上贴了一个邮戳:Asp.net 为什么我的应用程序缓存不使用OutputCache,asp.net,asp.net-mvc-3,caching,outputcache,Asp.net,Asp.net Mvc 3,Caching,Outputcache,我无法解释为什么我的应用程序没有缓存首页 我在页面上贴了一个邮戳:@DateTime.Now 这是主控制器的操作 [OutputCache(Duration = 60)] public ActionResult Index() { return View(); } 但是,缓存不起作用,头版不断更改日期。 我已经试着将首页和相关的版面缩小到最小,这样就只有DateTime了。现在已经盖章了 我已经检查了所有基本控制器是否存在任何禁用缓存代码 还检查了global.asax 已检查web.
@DateTime.Now
这是主控制器的操作
[OutputCache(Duration = 60)]
public ActionResult Index()
{
return View();
}
但是,缓存不起作用,头版不断更改日期。
我已经试着将首页和相关的版面缩小到最小,这样就只有DateTime了。现在已经盖章了
我已经检查了所有基本控制器是否存在任何禁用缓存代码
还检查了global.asax
已检查web.config中的任何缓存配置-无
用小提琴手检查。这是响应头
HTTP/1.1 200 OK
Cache-Control: public, no-cache="Set-Cookie", max-age=60
Content-Type: text/html; charset=utf-8
Expires: Wed, 04 Mar 2015 05:20:45 GMT
Last-Modified: Wed, 04 Mar 2015 05:19:45 GMT
Vary: *
我还尝试了不同的浏览器,这些浏览器不会修改任何本地缓存设置
我还尝试将应用程序部署到后台服务器,以便它不会在我的开发人员计算机上运行
尝试制作一个全新的asp.net mvc应用程序。那确实有效。至少在告诉我这项技术是有效的方面有所帮助
问题出在哪里?需要检查以下几点:
我不确定这是否对您有帮助,但如果您的“首页”碰巧使用了[Authorize]属性(它可以注册为全局筛选器),[Authorize]属性将禁用output caching.ty,这是一个很好的提示。不使用Authorize并检查控制器继承中的任何其他属性。依靠浏览器缓存
text/html
,甚至不会从服务器重新请求,在大多数现代浏览器中不太可能工作。如果您希望看到时间戳在60秒内不发生更改,请将缓存副本存储在服务器中:[OutputCache(Duration=60,Location=OutputCacheLocation.server)]
。你好,Nick,感谢您的建议。我想我已经发现了问题,只是还不知道为什么,我会在找到答案后发布答案。Nutshell是Homt。索引操作覆盖基本控制器操作。一个普通的家庭。联系人操作是缓存。我已经安装了甜甜圈缓存,现在我的问题解决了。
[OutputCache(Duration = 60, Location = OutputCacheLocation.Server)]
[OutputCache(Duration = 60, Location = OutputCacheLocation.Client)]