我回到了 MVC 应用程序,我认为输出缓存按预期工作。但是,在重新访问它时,我发现我使用的 OutputCache 属性没有效果(Duration 设置为高值)。无论我是否添加它,我的操作中的断点总是被命中,并且 Firebug 在每种情况下都会在请求的页面上向我显示 200 OK。
在我使用 VaryByCustom 的更复杂的操作中,从不调用 global.asax 中的 GetVaryByCustomString 方法。我知道它在过去被调用,因为我能够在那里进行调试,但现在不是。
我想知道我做了什么来打破这个......有什么想法吗?
(为了不仅测试 localhost,我使用了 dyndns.org 地址,使其成为有效的外部 URL。我也使用 IIS)。
更新:当我使用 localhost URL 时,定位相同的 url 不会再次输入操作代码。按F5可以。使用互联网 URL 时,它总是访问操作代码。
更新 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: *
每次我请求相同的 url 时,Expires = Date + 24h,这表明每次都提供一个新页面。我也应该第一次得到 200,之后得到 304。