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应用程序。那确实有效。至少在告诉我这项技术是有效的方面有所帮助


问题出在哪里?

需要检查以下几点:

  • 如果这是在您的生产环境中,请检查IIS上是否启用了输出缓存。看

  • 尝试切换缓存的位置,以帮助缩小问题所在的范围:

  • e、 g

  • 检查web.config中是否有任何可能覆盖默认行为的[caching]条目

  • 我不确定这是否对您有帮助,但如果您的“首页”碰巧使用了[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)]