我在使用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刷新网页,缓存数据
正如您所看到的,它的工作方式与仅基于会话的数据完全相同,而不是通用缓存。使用回调可能不会告诉我任何事情,因为数据仍然存在,只是不适用于新的会话
答案 0 :(得分:1)
听起来像是在Visual Studio中按F5重新启动应用程序。
只需打开新的浏览器窗口而无需重新启动应用程序。