【问题标题】:Data disappers from Cache - keys stay, but values are null数据从缓存中消失 - 键保留,但值为空
【发布时间】:2013-01-14 10:31:29
【问题描述】:

我们有几个相当大的用 C# 编写的 ASP.NET 2.0 应用程序,运行在 Windows Web Server 2008 上。 我们经常使用缓存,直到最近都没有问题。 然而,在过去的几个月里,我们在使用 Cache 的方法中遇到了随机错误。尽管键存在,但值 Cache[key] 似乎为空。或者缓存中有一个集合,它的所有元素突然都为空(集合是用常量初始化的,所以这些不是数据库问题)。 这怎么可能?有什么已知的错误吗?会不会是服务器内存或磁盘故障?

【问题讨论】:

  • 当内存变低时(或在一定时间后)删除值是缓存的想法。所以价值观变成null:设计使然。

标签: c# asp.net windows caching


【解决方案1】:

即使您使用 Cache.NoAbsoluteExpiration + Cache.NoSlidingExpiration 填充缓存,ASP.NET 也可以从缓存中删除项目(例如,当内存不足时)。

CacheItemPriority.NotRemovable 传递给Cache.Insert() 以防止这种情况发生。

【讨论】:

  • 不,不,这不是正常缓存工作的问题。问题是我们缓存了例如一个 ArrayList 填充了一些字符串。然后过了一段时间,我们从 Cache 中取出 ArrayList 并且 ArrayList[i] 为空,尽管可以肯定我们从来没有放任何空。
  • @user34402:然后更好地描述你的问题。同时贴出相关代码。
  • 在你说Cache[key] 为空的问题中,现在你说(ArrayList<string>)Cache[key][i] 为空。这是不一样的。请发布您的缓存存储/检索代码并澄清您的问题。
猜你喜欢
  • 1970-01-01
  • 2010-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-02
相关资源
最近更新 更多