c#cache不会在用户之间保持不变

时间:2013-08-07 11:12:36

标签: c# .net caching webforms

我在使用System.Web.Caching.Cache时遇到了一些问题。

基本上我正在使用

Cache.Insert(tablename, newlist, null, 
   System.Web.Caching.Cache.NoAbsoluteExpiration, 
   System.Web.Caching.Cache.NoSlidingExpiration);

将对象插入缓存,并Cache[tablename]在网络表单中检索它们。

我所遇到的是,如果我刷新调用这些方法的浏览器,那么数据就在那里,而Cache.Count反映了这一点。 但是,如果我关闭浏览器并重新启动它,或者在我的测试机器或其他浏览器上启动另一个浏览器,那么缓存数据就不存在了。

即Cache正在运行,就好像我在使用Session Store一样。我也尝试过使用Application store,但结果完全相同。

我查看了我的应用程序池设置和web.config,看不到任何明显的内容。

任何对此的帮助都会非常感激,因为重新查询数据库以获取放入缓存的信息会大大减慢webform的速度。

我不确定我是否足够清楚 重现。
浏览器1打开网页,没有缓存数据
浏览器1刷新网页,缓存数据

浏览器2打开网页,没有缓存数据
浏览器2刷新网页,缓存数据

浏览器1刷新网页,缓存数据

正如您所看到的,它的工作方式与仅基于会话的数据完全相同,而不是通用缓存。使用回调可能不会告诉我任何事情,因为数据仍然存在,只是不适用于新的会话

1 个答案:

答案 0 :(得分:1)

听起来像是在Visual Studio中按F5重新启动应用程序。

只需打开新的浏览器窗口而无需重新启动应用程序。