我在使用System.Web.Caching.Cache
.
基本上我正在使用
Cache.Insert(tablename, newlist, null,
System.Web.Caching.Cache.NoAbsoluteExpiration,
System.Web.Caching.Cache.NoSlidingExpiration);
将对象插入缓存,并Cache[tablename]
在 Web 表单上检索它们。
我遇到的是,如果我刷新调用这些方法的浏览器,那么数据就在那里,并且 Cache.Count 反映了这一点。但是,如果我关闭浏览器并重新启动它,或者在我的测试机器或其他机器上启动不同的浏览器,则缓存数据不存在。
即缓存的工作就像我在使用会话存储一样。我也尝试过使用应用程序商店,但结果完全相同。
我查看了我的应用程序池设置和 web.config,但看不到任何明显的东西。
对此的任何帮助将不胜感激,因为重新查询数据库以获取要放入缓存的信息会大大减慢网络表单的速度。
我不确定我是否足够清楚。
重现。
浏览器 1 打开网页,没有缓存数据
浏览器 1 刷新网页,缓存数据
浏览器 2 打开网页,没有缓存数据
浏览器 2 刷新网页,缓存数据
浏览器1刷新网页,缓存数据
如您所见,它的工作方式就像是仅会话数据,而不是公共缓存。使用回调可能不会告诉我任何信息,因为数据仍然存在,只是无法用于新会话