【发布时间】:2012-07-22 17:14:42
【问题描述】:
我们有一个现有的 MVC2 项目,我们刚刚升级到 MVC4,首先these steps 进入 MVC3,然后these steps 进入 MVC4。
输出缓存在我们的MVC2项目中已经成功运行了很长时间,但是在MVC4版本之后就不行了。
我添加了一个简单的控制器来测试缓存:
public class TestController : Controller
{
[OutputCache(Duration = 600, VaryByParam = "*")]
public ActionResult CacheTest()
{
return Content(DateTime.Now.ToLongTimeString());
}
}
每次我刷新这个页面,到浏览器的时间输出都会改变。
在相同的解决方案中创建一个新的 MVC3 项目,然后升级到 MVC4,然后复制相同的代码按预期工作。
所以在我们现有的代码或配置中一定有什么东西破坏了输出缓存。
我还尝试从 web.config 文件中删除大量内容,认为其中的某些内容会导致问题 - 不走运。
关于如何修复或调试此问题的任何建议?
更新:
在任何视图中呈现上面的 CacheTest 操作将显示缓存结果 - 即每次刷新时日期都不会改变:
<% Html.RenderAction("CacheTest", "Test"); %>
为什么会这样,但浏览器中的操作 url 永远不会被缓存?
【问题讨论】:
-
您使用的是同一个网络服务器吗?您是否从 Cassini 更改为 IIS Express?
-
是的,这里没有变化。我还在 win2008 服务器上的 IIS 7.5 上验证了相同的不良结果。
标签: caching asp.net-mvc-2 asp.net-mvc-4