我们有一个现有的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永远不会被缓存?
你使用的是同一个网络服务器吗?你是否从卡西尼改为IIS Express? – 2012-07-22 17:54:21
这里没有改变。我还在win2008服务器上验证了IIS 7.5上的相同不良结果。 – jaminto 2012-07-23 01:40:55