【发布时间】:2010-11-04 07:51:51
【问题描述】:
我们正在尝试按照 MSDN 中的教程通过 Service Broker 在一个 SQL 引擎中的两个 SQL 实例之间进行对话。 为了简单起见,我们发送 Encryption = OFF 的对话框,因此我们不需要处理 Master key、Certificate... 并且它在本地工作站中工作。
DECLARE @InitDlgHandle UNIQUEIDENTIFIER;
声明@RequestMsg NVARCHAR(100);
开始交易;
开始对话框@InitDlgHandle FROM SERVICE [//InstDB/2InstSample/InitiatorService] TO SERVICE N'//TgtDB/2InstSample/TargetService' 合同上 [//BothDB/2InstSample/SimpleContract] 和 加密 = 关闭;
SELECT @RequestMsg = N'目标服务的消息。';
发送对话@InitDlgHandle 消息类型 [//BothDB/2InstSample/RequestMessage] (@RequestMsg);
选择@RequestMsg AS SentRequestMsg;
提交交易; 去吧
然而,在移动到服务器后,使用相同的脚本,在 initDB 发出消息后,目标数据库在 SQL 跟踪中一直显示“找不到私钥,消息无法传递”。
我的问题是,既然我们设置了加密 = OFF,为什么目标数据库显示缺少证书?
我们使用 SQL 2005 SP2 ,Windows 2003
感谢任何输入。
【问题讨论】:
-
如果你真的想知道“为什么?”,那么我很确定 Remus 是地球上可能真正知道的 6 个人之一。希望他看到这一点...仅供参考,Service Broker 至少有十几个这些未记录(或记录非常模糊)的谜团,而不是像 SQLCLR 等广泛普及的功能,MS 没有太多关于如何或为什么的 inof这些事情应运而生。他们只是。
-
在两个不同的 SQL 实例上创建代理端点时,您是如何设置传输安全性的? Windows 身份验证还是基于证书的?如果可以的话,提供一个脚本。
标签: sql-server sql-server-2005 service-broker