【问题标题】:ASP.NET Output Caching not working after upgrade from MVC2 to MVC4从 MVC2 升级到 MVC4 后,ASP.NET 输出缓存不起作用
【发布时间】: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


【解决方案1】:

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

误报 - 与 ASP.NET MVC 升级或任何与 ASP.NET 相关的内容无关。

【讨论】:

    猜你喜欢
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 2011-06-25
    • 1970-01-01
    相关资源
    最近更新 更多