我回到MVC应用程序,我认为输出缓存按预期工作。但是,在重新访问它时,我看到我使用的OutputCache属性没有效果(持续时间设置为高值)。无论我是否添加它,我的动作中的断点总是被击中,Firebug在每种情况下都会在请求的页面上显示200 OK。
在我使用VaryByCustom的更复杂的操作中,从不调用global.asax中的GetVaryByCustomString方法。我知道它是在过去调用的,因为我能够在那里进行调试,但现在不是。
我想知道我做了什么来打破这个......任何想法?
(为了不仅测试localhost,我使用dyndns.org地址,这是一个有效的外部URL。我也使用IIS。)
更新:当我使用localhost网址时,定位相同的网址不会再次输入操作代码。击中F5会。使用互联网网址时,它始终会访问操作代码。
更新2 :Fiddler在响应标头中显示:
200 OK
Cache:
Cache-Control: public, no-cache="Set-Cookie", max-age=86400
Date: Mon, 16 Jul 2012 19:38:46 GMT
Expires: Tue, 17 Jul 2012 19:38:46 GMT
Vary: *
Expires = Date + 24h每次我请求相同的url,这表示每次都提供一个新页面。此外,我应该第一次获得200,之后获得304。
答案 0 :(得分:1)
刚刚发现了罪魁祸首,这是我的申请的背景:
如果我从我的应用程序中删除了51degrees.mobi nuget包,它就会再次运行。把它放回去(即使没有使用它的功能),缓存已经死了。嗯,实际上有两种情况:
我发布到他们的论坛报告此问题。
更新 :从51degrees版本2.1.4.9开始出现这些问题。我注意到这是使用Microsoft.Web.Infrastructure的第一个版本,如果这是相关的......
更新2 :他们找到了此问题的原因并将修复。