1

我有一个 asp.net 网络应用程序。我将一些从数据库中读取的数据添加到 HttpContext.Cache 但我希望每 15 分钟从数据库中重新读取一次数据并将其设置在缓存中。我该怎么做呢?我在缓存中添加条目以在 15 分钟后过期。我在将数据添加到缓存对象时查看了“CacheItemRemovedCallback”,但在此回调中 HttpContext 未初始化,它正在返回 null,因此,我无法将数据添加回缓存。有没有一种机制可以实现这一点?

4

2 回答 2

1

为什么不设置一个时间事件以在所需的时间间隔重新填充缓存,例如从 global.asax 中的应用程序启动事件开始。这不会延迟任何用户的 UI。

protected void Application_Start()
{
    Timer customTimer = new Timer();
    customTimer.Elapsed += new ElapsedEventHandler(YourHandler.YourRepopulationEvent);
    customTimer.Interval = YourInterval;
    customTimer.Start();
}
于 2013-05-07T17:19:48.733 回答
1

可能您可以将回调与缓存一起使用。请参考下面的链接 回调在 asp.net 中的缓存过期时

于 2013-10-03T11:23:23.730 回答