C#缓存过期无效

时间:2011-09-01 14:54:55

标签: c# caching

我将以下值添加到缓存中:

HttpContext.Cache.Insert(
    "ClientId", clientid, null,
    DateTime.UtcNow.AddYears(1), TimeSpan.Zero
);

我不希望缓存过期,因此我将日期设置为1年(DateTime.UtcNow.AddYears(1)),但30分钟后缓存的值不再存在。

3 个答案:

答案 0 :(得分:2)

如果您希望项目永远不是缓存,则需要使用Application集合。如果存在内存压力,则无法保证缓存在指定的时间内保留项目。另外,根据您提到的30分钟判断,如果网站上没有用户活动,您的应用程序域可能会被回收。

答案 1 :(得分:2)

来自MSDN:

  

如果您使用绝对过期,则使用slidingExpiration参数   必须是NoSlidingExpiration

答案 2 :(得分:0)

我不知道为什么你的代码不起作用但是如果你不想使这个值过期,那么你可以使用HttpContext.Current.Application.Add("ClientID", value)