2012-07-22 78 views
0

我们有一个现有的MVC2项目,我们刚刚升级到MVC4,之后是第一个these steps,转到MVC3,然后these steps转到MVC4。从MVC2升级到MVC4后,ASP.NET输出缓存不起作用

输出缓存在我们的MVC2项目中已经成功运行了很长时间,但在MVC4版本之后它不起作用。

我添加了一个简单的控制器来测试缓存:

public class TestController : Controller 
{ 
    [OutputCache(Duration = 600, VaryByParam = "*")] 
    public ActionResult CacheTest() 
    { 
     return Content(DateTime.Now.ToLongTimeString()); 
    } 
} 

每次我刷新此页面,时间输出到浏览器的变化。

在这个相同的解决方案中创建一个新的MVC3项目,然后升级到MVC4,然后复制这个相同的代码。

因此,我们现有的代码或配置中的任何地方都会出现中断输出缓存的情况。

我也尝试从web.config文件中剥离出一大堆东西,以为有些东西会导致问题 - 没有运气。

有关如何解决或调试此问题的任何建议?

UPDATE:

渲染上述CacheTest行动的任何视图将显示缓存的结果 - 即日期不会在每次刷新更改:

<% Html.RenderAction("CacheTest", "Test"); %> 

为什么这项工作,但行动来自浏览器的url永远不会被缓存?

+0

你使用的是同一个网络服务器吗?你是否从卡西尼改为IIS Express? – 2012-07-22 17:54:21

+0

这里没有改变。我还在win2008服务器上验证了IIS 7.5上的相同不良结果。 – jaminto 2012-07-23 01:40:55

回答

0

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

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

相关问题