2

我一直在使用 HttpRuntime Cache 来缓存内部 [dasboard] asp.net 应用程序上的简单用户首选项,该应用程序每天被近 200 个用户使用。

我只是缓存诸如最后一个查询条件、比例、选项(只是复选框依赖于其他复选框等)之类的东西,这样当用户关闭浏览器时,他们将在下次打开时返回到确切的仪表板/报告选项浏览器。

我不想使用数据库来缓存这些值,因为它们是“无限的”和“动态的”。

无论如何,HttpRunime Cahce 一直运行良好,但现在每隔一段时间它就无法在生产服务器上运行。有没有办法解决这个问题?

4

2 回答 2

2

缓存是应用程序范围的 - 您是否在每个用户的基础上缓存这些项目?

缓存会定期消失,您无法控制 - 如果您需要保留这些项目,那么数据库缓存可能是唯一的方法。

编辑 - 至于无限和动态,您可以将它们存储在数据库中的 XML 字段中。如果您有一个当前存储在缓存中的对象,如果缓存为空,则从数据库中序列化/反序列化它会相对容易。

于 2009-11-25T15:40:09.730 回答
1

当您插入缓存时,有可用的时间跨度和绝对过期设置,但是当应用程序池回收时,缓存将被清除。检查 IIS 中的应用程序池设置,并查看它的回收频率。

于 2009-11-25T15:33:31.460 回答