所以,我有一个有趣的问题。我们正在使用 AppFabric 并将大量数据缓存到其中。具有将存储到缓存中的某些方面以及在调用时清除特定键的缓存的方法。但是,我遇到了一个奇怪的问题,我有一个“幻像”缓存。
所以这里是创建场景。
2个浏览器(firefox和chrome),1个有管理员,第二个是普通用户。
- 等到缓存过期(5 分钟)然后检查缓存以确保其清除。这是。
- 接下来刷新普通用户以插入缓存,用管理员验证它的存在。这是。
- 使用管理员更新用户(更新期间清除缓存)验证其已被清除。这是。
- 刷新普通用户浏览器,看看它是否改变了。它没有
这是最后一个问题。我已经清除了缓存,验证了它的清除,但其他浏览器的行为就像它没有清除它一样。这并不总是发生,但经常发生,以至于我正在努力解决它。
有人对这可能是什么有任何想法吗?
更新一般缓存模式。对不起,我不能分享细节。
- PostSharp 属性来拦截方法调用并执行缓存。
- 检查 httpContext 缓存
- 检查 Azure 缓存
- 如果有,则放入 httpContext 缓存
- 运行方法
- 发送到 httpContext 缓存
- 使用 httpcontext 缓存将请求结束的队列推送到 azure 缓存
- 全局操作过滤器在请求结束时将排队的缓存值传输到天蓝色。
- 如果子动作返回
- 遍历队列并将新项目放入 Azure 缓存
- 清除队列中项目的 httpcontext 缓存
这提供了一种现成的访问方式,每次请求仅获取一次缓存项,并让任何 azure put 在请求结束时发生,在整个请求处理过程中收集它们之后。