我有一个基本的 MVC 应用程序,它使用 NHibernate 进行 OR/M 和数据访问,SysCache2 用于 NHibernate 中的二级缓存,SqlCacheDependency 用于底层缓存失效逻辑。我相信我已经正确设置了所有内容(如果需要,我可以添加详细信息)并且我可以看到项目正在缓存在应用程序端。
但是,如果我直接更新数据库表中的项目,则不会通过 SqlCacheDependency 和 NHibernate 中的 SysCache2 将更新发送回应用程序。因此,数据库中的数据正在更新,并且与应用程序缓存中的数据不同(在 NHibernate 和 SysCache2 中)。
我可以在 [AspNet_SqlCacheTablesForChangeNotification] 表中看到与正确域表递增相关的 [changeId] 列的值,因此我相当确定 SQL 服务代理已正确设置和配置。如果我使用 SQL Profiler 分析数据库,我可以看到队列、服务和存储过程的设置调用以及用于监视的 BEGIN CONVERSATION 调用。
不太确定接下来要检查什么。以前有没有人遇到过这个问题,解决方案是什么?