.NET缓存 - 缓存很早就到期了

时间:2017-06-12 02:50:20

标签: c# .net caching memorycache

我正在尝试在.Net 4.5中使用MemoryCache来存储对象1个月(绝对到期时间 - 从创建缓存时起1个月)。

问题 - 缓存似乎在一天内到期 - 有时在几小时内到期。

代码段

// Setting the cache with absolute expiration time of 1 month:
string objName = "myObj";
MemoryCache memCache = MemoryCache.Default;
memCache.Add(tokenID, myObj, DateTimeOffset.UtcNow.AddMonths(1));

// Accessing the cache later
MemoryCache getCache = MemoryCache.Default;
getCache.Get(tokenID);

问题

  1. 我是否正确设置了缓存?我没有看到任何使用AddMonths()的示例,但有许多使用AddDays() - 但这应该重要吗?
  2. 我可以使用绝对到期的最长时间吗? (我没有遇到任何将缓存设置超过30天但没有使用无限到期时间的示例。)
  3. 还有什么可能导致缓存过期?
  4. 非常感谢你!

1 个答案:

答案 0 :(得分:2)

检查您用于Web应用程序的IIS AppPool设置。在高级设置下,有空闲超时(分钟)的设置。如果您的站点在此期间闲置的时间更长,则关闭工作进程。