![]() |
1
4
只是一个调试提示:将缓存对象的值设置为DateTime。现在插入它以查看它是何时插入的。通过这种方式,您可以轻松确定它是以某种方式重新插入的,还是某个地方的某个东西一直在访问,从而迫使它留在缓存中。 再加上我关于订阅缓存过期事件并写入日志文件的建议,应该可以为您提供足够的信息来定位问题。 |
![]() |
2
1
对你来说,这是一个正确的假设。你在哪里做缓存? 我询问的原因是,如果您在Global.asax中,例如在Application_Start中执行此操作,并且该应用程序在页面视图之间循环,它将显示相同的行为。 |
![]() |
3
1
在缓存读取的所有实例上放置断点,以查看它们是否意外命中(从而延长对象的生命)? |
![]() |
4
0
|
![]() |
5
0
您是否绝对确定不只是在每次点击页面时将项目插入缓存?
就我所知,这是唯一能解释这种行为的东西。 我建议您在Cache.Insert发生的行上设置一个断点,并查看当您点击页面时它是否执行。您还可以订阅缓存的remove回调,并在缓存过期时写入文件。如果这样做,您可以执行一次页面;这样就可以插入项目,然后坐下来观察文件,看它是否被删除。 |
![]() |
6
0
好的,我想我已经弄明白了,但我不确定这到底是为什么:
在我最初在代码中将值分配给缓存之后,出现了一个循环,在每次迭代中,我使用以下方法将一个新值分配给同一对象:
但是,使用这种语法,一旦发生这种情况,日志文件就会显示该项已从缓存中删除,即使该项仍然可以由刚刚写出缓存对象值的单独页面访问?
现在在日志中,我得到了相同的删除通知,紧接着是另一个添加通知,该项在120(ish)秒后正确过期,不再可以从其他页面访问。 我很困惑,但谢谢你的帮助:) |
![]() |
7
0
是否未在web.config中设置? |
![]() |
8
0
只要您的计算机处于打开状态,并且内存块没有被其他数据替换。缓存永远不会过期。即使关闭浏览器并重新打开,也可以检索它。
|
![]() |
tincho87 · 避免Javascript/Css缓存 7 年前 |
![]() |
Zac · 如何强制客户端重新下载我的网站? 7 年前 |
![]() |
Kumar · bitbake清理使用只读NFS SSTATE缓存失败 7 年前 |
![]() |
Chris Williams · 休眠/JPA缓存查找值 7 年前 |
![]() |
Nymeria · 仅绑定到当前事务的Spring缓存 7 年前 |