如果存在队列并且查询有效,则SqlDependency不起作用
本文关键字:SqlDependency 不起作用 有效 查询 存在 队列 如果 | 更新日期: 2023-09-27 18:05:35
使用以下代码,我的OnChange事件不会引发:
SqlDependency.Start(connectionString);
SqlConnection conn = new SqlConnection(connectionString);
conn.Open();
using (SqlCommand command = new SqlCommand(
"SELECT Name, Description FROM dbo.Boms",
conn))
{
SqlDependency dep = new SqlDependency(command);
dep.OnChange += dep_OnChange;
// Execute the command.
using (SqlDataReader reader = command.ExecuteReader())
{
// Process the DataReader.
}
}
我谷歌查询任何可能的约束,但我的查询似乎是好的。深度对象也正确创建,但我试图插入(成功)记录在我的bom表,但我没有收到反馈或事件。在Sql Server 2012中,每次我启动应用程序时都会看到一个新的队列。
我在系统表中查找错误,但似乎一切正常。
任何提示,至少了解问题在哪里?
谢谢!
阅读神秘通知、故障处理查询通知故障处理对话框和使用SQL跟踪故障处理查询通知,了解故障处理技巧。
- 使用分析器,监视查询通知事件类别,查看如何创建和通知QN订阅。
- 使用分析器,监视Broker Event Category以查看通知是如何传递的,特别是检查是否传递失败。
- 使用分析器,监视审计代理会话事件类,查看通知传递是否遇到安全问题。
运行此命令以确保执行为沙盒上下文不会遇到孤立的dbo侧问题:
ALTER AUTHORIZATION ON database::[<yourdbname>] TO [sa];