【问题标题】:SQL Service Broker Error - The conversation handle is not foundSQL Service Broker 错误 - 未找到对话句柄
【发布时间】:2017-07-07 05:05:45
【问题描述】:

我使用了 SQL 服务代理和SQL Table Dependency 并在表中启动了 SQL 表依赖项,以获取有关表数据更改的通知。我已授予 SQL 表依赖项文档中列出的数据库的所有权限。一段时间后,可能处于空闲状态,它的状态为“等待通知”。

当我在表中更改(插入新记录)时,状态没有改变(等待通知)并给出错误为“找不到对话句柄“A705917C-4762-E711-9447-000C29C3FCF0”。”

谁能帮我解决这个问题?

【问题讨论】:

    标签: sql-server service-broker sqldependency


    【解决方案1】:

    请先阅读此评论:

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


    另一方面

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

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

    然后尝试启用trustworthy

    Alter database [DbName] set trustworthy on
    

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

    Thank to Scott Hanselman for his answer

    【讨论】:

    • SQLDependency != SqlTableDependency。 +这不是一个有效的解决方案。
    • @Marcus,我知道,你的观点在这里并不重要,因为虽然它们不相等,但它们可能有类似的问题和类似的解决方案!为什么不呢?
    猜你喜欢
    • 1970-01-01
    • 2010-11-21
    • 2013-09-07
    • 2012-08-01
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    相关资源
    最近更新 更多