OutputCache停止工作

Swisher甜

我不确定是什么原因造成的,但是我们的控制器操作用于缓存其输出,但不再起作用:

[HttpGet]
[OutputCache(VaryByParam = "slug", Duration = 3600)]
public ContentResult Index(string slug)
{
    // each call to the page returns a new tick value
    var viewData = DateTime.Now.Ticks.ToString();
    return View(viewData);
}

在此之前,我可以调试页面,在Index方法中放置一个断点,并且对该页面的第一次调用将触发该断点,而随后的调用则不会。现在,对页面的每次调用都会触发断点。

即使在运行站点(而不是调试)时,我也可以在操作中跟踪SQL调用,不应在第一次调用后调用该SQL调用。

我不知道它什么时候停止工作,但是我们最近才升级到.Net 4.0和MVC 3。

非常感谢。

编辑

以下是页面响应的标题:

Cache-Control   public, no-cache="Set-Cookie", max-age=1296000
Content-Encoding    gzip
Content-Length  5414
Content-Type    text/html; charset=utf-8
Date    Wed, 18 Sep 2013 00:33:23 GMT
Expires Thu, 03 Oct 2013 00:33:20 GMT
Last-Modified   Wed, 18 Sep 2013 00:33:20 GMT
Server  Microsoft-IIS/7.5
Set-Cookie  tag=tech; expires=Thu, 19-Sep-2013 00:33:23 GMT; path=/
Vary    *
X-AspNet-Version    4.0.30319
X-AspNetMvc-Version 3.0
X-Powered-By    ASP.NET
Swisher甜

问题是我在控制器操作中设置了cookie值:

HttpContext.Response.Cookies.Add(myCookie);

其中更改了标题:

Cache-Control: public, max-age=1295931

对此:

Cache-Control: public, no-cache="Set-Cookie", max-age=1296000

通过注释添加cookie的行,页面再次被缓存。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章