【发布时间】:2011-09-08 02:32:55
【问题描述】:
我有一个基本的 MVC 应用程序,它使用 NHibernate 进行 OR/M 和数据访问,SysCache2 用于 NHibernate 中的二级缓存,SqlCacheDependency 用于底层缓存失效逻辑。我相信我已经正确设置了所有内容(如果需要,我可以添加详细信息)并且我可以看到项目正在缓存在应用程序端。
但是,如果我直接更新数据库表中的项目,则不会通过 SqlCacheDependency 将更新发送回应用程序以及 NHibernate 中的 SysCache2。因此,数据库中的数据正在更新,并且与应用程序缓存中的数据不同(在 NHibernate 和 SysCache2 中)。
我可以看到 [changeId] 列的值与 [AspNet_SqlCacheTablesForChangeNotification] 表中的正确域表递增相关,因此我相当确定 SQL Service Broker 的设置和配置正确。如果我使用 SQL Profiler 分析数据库,我可以看到队列、服务和存储过程的设置调用以及用于监视的 BEGIN CONVERSATION 调用。
不确定接下来要检查什么。以前有人遇到过这个问题吗?解决方法是什么?
【问题讨论】:
标签: sql-server-2008 nhibernate asp.net-mvc-3 sqlcachedependency syscache2