Httpcontext当前缓存被清除

时间:2016-06-20 09:12:00

标签: c# caching httpcontext

我使用HttpContext.Current.Cache方法将值存储到Insert

HttpContext.Current.Cache.Insert(key, value, null, DateTime.Now.AddMinutes(1440), TimeSpan.Zero);

在我看来,这应该在1440分钟内将值存储在缓存中。但不知何故,缓存被清除,密钥不再存在。我最后一次检查这个缓存是在大约30分钟内保存的。

可以以某种方式清除缓存吗?如果AppPool被回收或类似的东西?

2 个答案:

答案 0 :(得分:1)

是的,缓存存储在内存中,直到进程停止,因此重新启动/重置IIS或回收应用程序池将清除缓存。如果它是本地主机,构建应用程序也将清除缓存。

答案 1 :(得分:1)

你确定这段代码是执行的吗?在AbsoulteExpiration中设置SlidingExpirationCache.Insert都是非法的。如果执行,您的代码应该抛出ArgumentException

link

正确使用

HttpContext.Current.Cache.Insert(key, item, null, dateExpiration, Cache.NoSlidingExpiration);

如果您希望{4}分钟Cache.NoSlidingExpiration,请使用AbsoluteExpiration

HttpContext.Current.Cache.Insert(key, value, null, DateTime.Now.AddMinutes(1440), Cache.NoSlidingExpiration);

希望这有帮助。