我将以下值添加到缓存中:
HttpContext.Cache.Insert(
"ClientId", clientid, null,
DateTime.UtcNow.AddYears(1), TimeSpan.Zero
);
我不希望缓存过期,因此我将日期设置为1年(DateTime.UtcNow.AddYears(1)
),但30分钟后缓存的值不再存在。
答案 0 :(得分:2)
如果您希望项目永远不是缓存,则需要使用Application集合。如果存在内存压力,则无法保证缓存在指定的时间内保留项目。另外,根据您提到的30分钟判断,如果网站上没有用户活动,您的应用程序域可能会被回收。
答案 1 :(得分:2)
来自MSDN:
如果您使用绝对过期,则使用slidingExpiration参数 必须是NoSlidingExpiration。
答案 2 :(得分:0)
我不知道为什么你的代码不起作用但是如果你不想使这个值过期,那么你可以使用HttpContext.Current.Application.Add("ClientID", value)