【问题标题】:C# Cache expiration not workingC#缓存过期不起作用
【发布时间】:2011-11-08 11:40:14
【问题描述】:

我正在向缓存中添加以下值:

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

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

【问题讨论】:

标签: c# caching


【解决方案1】:

如果您希望项目永久保留而不是缓存,则需要使用 Application 集合。如果存在内存压力,缓存不保证在您指定的时间内保留项目。此外,从您提到的 30 分钟来看,如果站点上没有用户活动,您的应用程序域可能会被回收。

【讨论】:

    【解决方案2】:

    来自 MSDN:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2016-07-20
        • 2018-05-01
        • 2011-08-19
        • 2013-07-01
        • 2011-02-25
        • 2016-12-06
        • 2021-05-09
        • 2013-08-18
        • 2016-11-02
        相关资源
        最近更新 更多