SQL Service Broker错误 - 找不到会话句柄

时间:2017-07-07 05:05:45

标签: sql-server service-broker sqldependency

我使用了SQL Service代理和SQL Table Dependency,并在表中启动了SQL表依赖关系,以获取有关表数据更改的通知。我已经获得了SQL表依赖文档中列出的数据库的所有权限。经过一段时间后,可能处于闲置状态,它正在提供状态为"等待通知"

当我更改表格(插入新记录)时,状态不会改变(从等待通知)并给出错误"会话句柄" A705917C-4762-E711-9447-000C29C3FCF0&#34 ;找不到。"

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

请先阅读此评论:

  

有一种非常常见的情况会导致更多时间:   调试。开发应用程序时,通常需要花费数小时   在继续之前,调试器内部的分钟数。所以请小心   当您调试分配给值的应用程序时    watchDogTimeOut参数足够长,否则会产生   在调试活动的中间销毁数据库对象。   Reference

另一方面

如果您使用SQLDependency并收到如下错误:

  

会话句柄   " 206A971D-6F25-DA11-B22F-0003FF6FCCCA"找不到。无效的对象   名称' SqlQueryNotificationService -   41136655-4314-4536-a477-37156eb628db'

然后尝试启用trustworthy

Alter database [DbName] set trustworthy on

enter image description here

  

TRUSTWORTHY 数据库属性用于指示是否   SQL Server实例信任数据库及其中的内容。   默认情况下,此设置为OFF,但可以使用设置为ON   ALTER DATABASE语句。 more information

Thank to Scott Hanselman for his answer