我正在使用服务代理/ Sqldependency来监视表更改。实际的控制台应用程序在不同于sql server的服务器上作为Windows服务运行。我们每天停下来开始服务。它的工作正常,而不是每天发生的两个错误
第一个错误对应于我们停止并启动Windows服务的时间,该服务停止并启动sqldependency
Service Broker需要访问数据库' XXXX'中的主密钥。错误代码:32。主密钥必须存在,并且需要服务主密钥加密。
第二个错误对应于在停止和启动sqldependency后表中发生第一次更改的时间范围
会话句柄上的查询通知对话框' {4443C789-1047-E511-80DA-005056A32BA6}。'由于以下错误而关闭:&{39; -8490
无法找到远程服务' SqlQueryNotificationService-555c9c9d-d01a-423c-8710-7e9e9a63fbca'因为它不存在。' .5
以下是我正在使用的代码段
OnService Start:
SqlDependency.Stop(connectionString);
SqlDependency.Start(connectionString);
OnService Stop
SqlDependency.Stop(connectionString);
在通知事件中
SqlDependency dependency = new SqlDependency(command);
dependency.OnChange += new OnChangeEventHandler(OnDependencyChange);
我不确定我还缺少什么导致上面列出的错误。有人可以请帮助我理解导致这些错误的原因和最新解决方案。除了这两个错误之外,该服务似乎运行正常。
感谢您的时间并回复