У меня самая странная проблема - только начал использовать MemoryCache и думал, что это будет довольно просто... оказывается, это не так. Это совершенно пустое приложение ASP.NET MVC5, размещенное на моем локальном IIS 7.5.
При первом запросе значение должно было быть добавлено в кеш, поэтому, если я обновлю страницу, кеш должен сохранить значение.
Когда я отлаживаю приложение, точка останова (в моей строке с комментариями) срабатывает дважды: по первому запросу, по второму запросу. После этого кешированное значение можно использовать.
Почему кеш не возвращает значение при первой перезагрузке, как ожидалось?
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();
}
}