我在C#应用程序中使用SqlDependency
来跟踪数据何时发生更改。最近,我开始收到一个错误,表明已达到查询通知模板限制。在设置依赖项后立即调用更改处理程序:
void sqlDependency_OnChange(object sender, SqlNotificationEventArgs e)
{
// At this point, e.Info == "TemplateLimit" and e.Type == Subscribe
}
我查找了TemplateLimit并找到了以下信息:“订阅查询导致其中一个目标表上的模板数超过最大允许限制。”
我尝试通过执行以下命令从服务器删除所有活动查询通知:
KILL QUERY NOTIFICATION SUBSCRIPTION ALL
执行此操作后,sys.dm_qn_subscriptions
视图中没有剩余条目。但是,在设置SqlDependency
时,我仍会遇到同样的错误。看起来查询通知模板似乎没有被清除,即使订阅已全部删除。如何让SqlDependency
重新开始工作?