Asp.Net内存缓存没有刷新

时间:2017-07-18 18:52:04

标签: asp.net caching

我在使用REST API定价列表的系统中工作,我们为每个请求付费。因此,由于这些价格经常不会发生变化,我会将它们保存在内存缓存中。我的问题是这个缓存没有刷新,为了刷新我必须回收应用程序池。以下是我用来获取价格的功能:

public static List<PricingModel> GetItemPrices()
{
    var cache = MemoryCache.Default;
    string key = "ItemPrices";
    var val = cache[key] as List<PricingModel>;
    if (val == null)
    {
        val = new List<PricingModel>();
        val = apiProxy.GetPrices();
        foreach (var price in val)
        {
            price.Price *= 100;
        }
        CacheItemPolicy policy = new CacheItemPolicy();
        policy.AbsoluteExpiration = DateTimeOffset.Now.AddHours(1);
        cache.Set(new CacheItem(key, val), policy);
    }
    return val;
}

我是否遗漏了缓存策略中的某些内容以使其实际刷新?我做错了什么?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您可以检查代码中的其他任何地方是否有相同的密钥&amp;值被分配?因为这样做会覆盖警察和警察让它没有到期。

<cache disableExpiration="true"/> - is not set in your web.config?