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