2015-06-26 55 views
0

我有最奇怪的问题 - 刚开始使用MemoryCache,并认为它会非常简单...事实并非如此。这是一个完全空白的ASP.NET MVC5应用程序,托管在我的本地IIS 7.5上MemoryCache.Default在第一个请求后失效

在第一个请求上,该值应该已经添加到缓存 - 所以如果我刷新页面,缓存应该保存该值。

当我调试应用程序时,断点(在我的评论线上)被击两次:第一次请求时,第二次请求。之后,可以使用缓存的值。

为什么缓存不按预期的方式返回第一次重新加载的值?

public class Temp 
{ 
    public int Age { get; set; } 
} 

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     var temp = (Temp)MemoryCache.Default.Get("MyVal"); 

     if (temp == null) 
     { 
      // THIS GETS HIT ON THE FIRST TWO REQUESTS, AFTER THAT THE CACHE RETURNS THE VALUE 
      temp = new Temp { Age = -127 }; 
      MemoryCache.Default.Add("MyVal", temp, DateTime.UtcNow.AddMinutes(10)); 
     } 


     return View(); 
    } 
} 

回答

0

我不认为你需要在MVC应用程序中使用MemoryCache。它需要一些自定义实现才能使其工作。为什么不使用HttpContext.Cache而不是? 使用非常简单,可以根据自己的喜好进行配置 - 网上有很多教程。 (前段时间我做了一个小教程,如果起步有问题,你可以check it out

相关问题