MSDN のチュートリアルに従って、Service Broker を介して 1 つの SQL エンジン内の 2 つの SQL インスタンス間で会話をしようとしています。簡単にするために、Encryption = OFF でダイアログを送信するので、Master key や Certificate... を処理する必要がなく、ローカル ワークステーションで機能します。
DECLARE @InitDlgHandle UNIQUEIDENTIFIER;
DECLARE @RequestMsg NVARCHAR(100);
取引を開始します。
BEGIN DIALOG @InitDlgHandle サービス [//InstDB/2InstSample/InitiatorService] からサービス N'//TgtDB/2InstSample/TargetService' への契約 [//BothDB/2InstSample/SimpleContract] WITH ENCRYPTION = OFF;
SELECT @RequestMsg = N'Message for Target service.';
会話時に送信 @InitDlgHandle メッセージ タイプ [//BothDB/2InstSample/RequestMessage] (@RequestMsg);
@RequestMsg を SentRequestMsg として選択します。
コミットトランザクション; 行く
ただし、サーバーに移動した後、同じスクリプトを使用すると、initDB がメッセージを送信した後、ターゲット DB は SQL トレースで「プライベート キーが見つかりません。メッセージを配信できません」と表示し続けます。
私の質問は、暗号化 = OFF を設定したため、ターゲット DB に証明書が見つからないのはなぜですか?
SQL 2005 SP2、Windows 2003 を使用
任意の入力に感謝します。