我正在尝试让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 Queues
和System Services
下,弹出一个消息:
-dbo.SqlQueryNotificationService
到目前为止,我还没有找到任何修复程序,对于解决此问题的任何建议,我将不胜感激。
答案 0 :(得分:0)
本文回答了我的问题 https://ardalis.com/sqldependency-issue-resolved
我使用以下查询来设置数据库的所有者:
从sys.database中选择名称suser_sname(owner_sid)
即使数据库的所有者设置为sa,已经在运行以下查询也解决了该问题:
对DATABASE :: dbNameTO sa进行更改授权;