从MVC2升级到MVC4后,ASP.NET输出缓存无法正常工作

时间:2012-07-22 17:14:43

标签: caching asp.net-mvc-2 asp.net-mvc-4

我们有一个现有的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"); %>

为什么这样做,但是浏览器中的操作网址从不缓存?

1 个答案:

答案 0 :(得分:0)

原来这是第三方库的问题 - 51Degrees。这是该库的最新版本中引入的问题。在从MVC2转换为MVC4的过程中,我安装了nuget软件包,这比我之前使用的版本晚几个版本。

虚假警报 - 与ASP.NET MVC升级或任何ASP.NET相关无关。