我使用HttpContext.Current.Cache
方法将值存储到Insert
:
HttpContext.Current.Cache.Insert(key, value, null, DateTime.Now.AddMinutes(1440), TimeSpan.Zero);
在我看来,这应该在1440分钟内将值存储在缓存中。但不知何故,缓存被清除,密钥不再存在。我最后一次检查这个缓存是在大约30分钟内保存的。
可以以某种方式清除缓存吗?如果AppPool被回收或类似的东西?
答案 0 :(得分:1)
是的,缓存存储在内存中,直到进程停止,因此重新启动/重置IIS或回收应用程序池将清除缓存。如果它是本地主机,构建应用程序也将清除缓存。
答案 1 :(得分:1)
你确定这段代码是执行的吗?在AbsoulteExpiration
中设置SlidingExpiration
和Cache.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);
希望这有帮助。