为什么我的应用程序不会使用OutputCache缓存

时间:2015-03-04 05:52:41

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

我无法解释为什么我的应用程序没有缓存首页。

我在页面上放置了一个日期戳:@DateTime.Now

这是家庭控制器动作

[OutputCache(Duration = 60)]
public ActionResult Index()
{
    return View();
}

但是,缓存无效,首页会不断更改日期。

我试图将首页和关联的布局减少到最小,因此只标记了DateTime.Now。

我已经检查了所有基本控制器是否有任何禁用缓存代码。

还检查了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应用程序。这确实有效。至少告诉我技术的工作有点帮助。

问题出在哪里?

1 个答案:

答案 0 :(得分:2)

要检查的几件事情:

  1. 如果这是在您的生产环境中,请检查IIS上是否启用了输出缓存。请参阅this page

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

  3. e.g。

    [OutputCache(Duration = 60, Location = OutputCacheLocation.Server)]
    [OutputCache(Duration = 60, Location = OutputCacheLocation.Client)]
    
    1. 检查您的web.config以查找可能覆盖默认行为的任何[缓存]条目