SqlDependency适用于我的测试数据库,但不适用于实际的数据库

时间:2019-04-03 08:06:54

标签: c# sql sqldependency

我正在尝试让SqlDependency与现有数据库和C#项目一起使用。我已经在测试数据库上测试了C#代码,它可以按预期工作。当我尝试使用现有数据库时,将新的数据条目添加到数据库时,我的C#事件到我的OnChange事件都没有。因为它可以与我的测试数据库一起使用,所以我将问题隔离到现有数据库中。

我已启用经纪人:

ALTER DATABASE [dbName] SET ENABLE_BROKER

我已经创建了队列和服务:

CREATE QUEUE NewEventQueue;
CREATE SERVICE NewEventService ON QUEUE NewEventQueue 

([[http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification]

我已经相同,因此无法授予权限。当我运行以下查询时,它告诉我不能授予,拒绝或撤消对sa的权限:

GRANT SUBSCRIBE QUERY NOTIFICATIONS TO "dbo"

  

(顺便说一句,“ SELECT CURRENT_USER”返回结果“ dbo”)

当我运行C#项目并向数据库发出订阅请求时,在System QueuesSystem Services下,弹出一个消息: -dbo.SqlQueryNotificationService

到目前为止,我还没有找到任何修复程序,对于解决此问题的任何建议,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

本文回答了我的问题 https://ardalis.com/sqldependency-issue-resolved

我使用以下查询来设置数据库的所有者:

从sys.database中选择名称suser_sname(owner_sid)

即使数据库的所有者设置为sa,已经在运行以下查询也解决了该问题:

对DATABASE :: dbNameTO sa进行更改授权;