2015-06-26 48 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

相關問題