0

我正在使用服务代理/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); 

我不确定我还缺少什么导致上面列出的错误。有人可以帮助我了解导致这些错误的原因以及解决方法。除了每天出现这两个错误之外,该服务似乎运行良好。

感谢您的时间并回复

4

0 回答 0