【问题标题】:MemoryCache.Default invalidated after first RequestMemoryCache.Default 在第一次请求后失效
【发布时间】:2015-06-26 10:14:24
【问题描述】:

我有一个最奇怪的问题 - 刚开始使用 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();
    }
}

【问题讨论】:

    标签: asp.net memorycache


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-07-12
      • 1970-01-01
      • 2011-12-09
      • 2013-08-22
      • 1970-01-01
      • 2019-03-08
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多