0

テーブルの変更を監視するためにサービス ブローカー/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 つのエラー以外は、サービスは正常に実行されているようです。

お時間を割いてご返信ください

4

0 に答える 0