SQL Service Broker错误 - 未找到对话句柄

问题描述:

我已经使用SQL Service Broker和SQL Table Dependency,并在表中为表数据更改通知启动了SQL表依赖关系。我已经给出了SQL表依赖性文档中列出的数据库的所有权限。经过一段时间后,可能处于空闲状态,其状态为“等待通知”。SQL Service Broker错误 - 未找到对话句柄

当我更改表(插入新记录),状态没有改变(从等待通知),并给出错误的“谈话手柄‘A705917C-4762-E711-9447-000C29C3FCF0’是找不到的。”

任何人都可以帮我解决这个问题吗?

首先阅读此评论请:

有一个很常见的场景导致更多的时间: 调试。在开发应用程序时,您往往会在调试器中花费几分钟时间,然后再继续。所以当你调试一个应用程序时,请注意 这个值分配给 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

可信赖数据库属性用于指示SQL服务器的 实例是否相信在它的数据库和内容。 默认情况下,此设置为OFF,但可以通过使用 ALTER DATABASE语句将其设置为ON。 more information

Thank to Scott Hanselman for his answer