我们正在尝试按照 MSDN 中的教程通过 Service Broker 在一个 SQL 引擎中的两个 SQL 实例之间进行对话。为了简单起见,我们发送 Encryption = OFF 的对话框,因此我们不需要处理 Master key、Certificate... 并且它在本地工作站中工作。
DECLARE @InitDlgHandle UNIQUEIDENTIFIER;
声明 @RequestMsg NVARCHAR(100);
开始交易;
BEGIN DIALOG @InitDlgHandle 从服务 [//InstDB/2InstSample/InitiatorService] 到 SERVICE N'//TgtDB/2InstSample/TargetService' ON CONTRACT [//BothDB/2InstSample/SimpleContract] WITH ENCRYPTION = OFF;
SELECT @RequestMsg = N'目标服务的消息。';
发送对话@InitDlgHandle MESSAGE TYPE [//BothDB/2InstSample/RequestMessage] (@RequestMsg);
选择 @RequestMsg 作为 SentRequestMsg;
提交交易;去
但是,在移动到服务器后,使用相同的脚本,目标数据库在 initDB 发出消息后的 SQL 跟踪中一直显示“找不到私钥,消息无法传递”。
我的问题是,既然我们设置了加密 = OFF,为什么目标数据库显示缺少证书?
我们使用 SQL 2005 SP2 , Windows 2003
感谢任何输入。