0
我正在使用REST API中定價列表的系統,我們爲每個請求付費。所以,因爲這些價格不會經常變化,所以我將它們保存在內存緩存中。我的問題是這個緩存不刷新,他們刷新我不得不回收應用程序池。以下是我用來獲取價格的功能:Asp.Net內存緩存不刷新
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;
}
我是否在緩存策略中缺少某些內容以使其實際刷新?我究竟做錯了什麼?
感謝所有幫助
@Immanueal在web.config中沒有任何關於緩存的內容。我要把它強制爲假,我會檢查密鑰,以確保不是這種情況 –
重複密鑰不是問題我也強制禁用到期假。它沒有工作 –
好的。雖然沒有太多相關的,請檢查這個[鏈接](https://stackoverflow.com/questions/16972641/expiring-a-cached-item-via-cacheitempolicy-in-net-memorycache)其中提到的UTC和持續時間看一下 – Immanuel