SqlDependency不起作用



我正在将EF 6与SQL Server 2012一起使用。

我正在尝试使用SqlDependency刷新类库(DLL)中的缓存数据。

根据我找到的指南,我有以下内容,但似乎不起作用,我没有错。

  • 已在数据库上启用broker服务
  • 创建了代理队列和服务

使用sa登录。

我正在通过单元测试代码测试这整件事,不确定通知是否不是即时的,我在SqlDependency.OnChange中的断点从未触发过。

但即使我故意放慢帖子的更改速度,OnChange仍然没有被触发。

一旦我进行了相关的数据更改,我如何知道SQL Server正在数据库中生成通知?

更新:

最初,我在SQL日志中发现"需要主密钥加密"。通过创建该密钥,日志不再发生,但OnChange仍然不会被触发。

经过多次试验,并基于一篇重要文章:http://www.codeproject.com/Articles/12335/Using-SqlDependency-for-data-change-events

1) SqlDependency初始化后,必须执行SqlCommand,只需调用sqlCmd.ExecuteNonQuery()即可。

2) 触发OnChange事件后,必须删除事件处理,重新创建新的SqlCommand和SqlDependency,重新绑定事件处理,并遵循规则#1

相关内容

  • 没有找到相关文章

最新更新