テーブルの変更を監視するためにサービス ブローカー/Sqldependency を使用しています。実際のコンソール アプリケーションは、SQL サーバーとは異なるサーバー上で Windows サービスとして実行されます。私たちは毎日サービスを停止して開始します。毎日発生する2つのエラー以外は正常に機能しています
最初のエラーは、windows サービスを停止して開始したときに対応します。
Service Broker は、データベース 'XXXX' のマスター キーにアクセスする必要があります。エラーコード:32。マスター キーが存在する必要があり、サービス マスター キーの暗号化が必要です。
2 番目のエラーは、sqldependency の停止と開始後にテーブルで最初の変更が発生した時間枠に対応します。
会話ハンドル「{4443C789-1047-E511-80DA-005056A32BA6}」のクエリ通知ダイアログ。次のエラーのため閉じられました: '-8490
リモート サービス 'SqlQueryNotificationService-555c9c9d-d01a-423c-8710-7e9e9a63fbca' が存在しないため、見つかりません.'.5
以下は、私が使用しているコードスニペットです
オンサービス開始:
SqlDependency.Stop(connectionString);
SqlDependency.Start(connectionString);
オンサービスストップ
SqlDependency.Stop(connectionString);
告知イベントで
SqlDependency dependency = new SqlDependency(command);
dependency.OnChange += new OnChangeEventHandler(OnDependencyChange);
上記のエラーの原因となっている他に何が欠けているのかわかりません。誰かがこれらのエラーの原因と解決策を理解するのを手伝ってくれませんか. この 2 つのエラー以外は、サービスは正常に実行されているようです。
お時間を割いてご返信ください