BizTalk MSMQ适配器:从远程专用队列读取问题

时间:2014-06-30 16:32:35

标签: biztalk msmq

我遇到BizTalk中MSMQ接收位置设置的问题。我正在寻找解决方案的想法。非常感谢您在这方面的帮助!

以下是设置:

BizTalk Server - Windows Server 2012 - 在域上托管

a)MSMQ接收位置指向远程专用队列

b)BizTalk MSMQ主机实例在域帐户下运行

托管MSMQ的服务器 - Windows Server 2008 R2 - 不在域

a)设置私有事务和非事务性队列

b)为Everyone,Anonymous和Network Service用户提供对两个队列的完全控制 c)使用相同的密码创建了一个影子帐户bthost.instance,以确定是否能解决问题

以下是我用于解决问题的一些步骤:

  1. 当我在BizTalk中启用接收位置时,收到错误消息,指出“用户无权接收消息。请检查队列权限。 “

  2. 我能够成功发送到MSMQ服务器上托管的队列。但是,MSMQ使用不同的协议进行接收(RPC)和发送(TCP)。我相信这解释了这种差异。

  3. 我能够从域上另一台服务器上托管的队列中成功接收。我遇到了托管在不在域上的服务器上的队列的问题。

  4. 我按照以下blog post的说明进行操作。我已确保DTC配置正确,已为消息队列设置了Windows防火墙例外,并从计算机管理的消息队列服务器安全设置中清除了“禁用未经过身份验证的RPC调用”(BizTalk和承载消息队列的服务器上都有) )

  5. 基于以下Technet article添加了注册表设置HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSMQ \ Parameters \ Security \ NewRemoteReadServerAllowNoneSecurityClient并将其设置为1

    < / LI>
  6. 使用TCP:IP地址和操作系统进行测试:服务器名称约定。**两种约定都会导致上述相同的错误。 FORMATNAME:DIRECT = TCP:xxx.xx.x.xx \ PRIVATE $ \ QueueName和FORMATNAME:DIRECT = OS:ServerName \ PRIVATE $ \ QueueName

  7. 我写了一个C#控制台程序来从同一个事务队列中读取。我从BizTalk服务器执行了控制台程序。我注意到我能够使用我的AD凭据从队列中读取。但是,我无法使用BizTalk主机凭据读取。我收到“拒绝访问消息排队系统”。

  8. 我们可以选择在BizTalk的接收位置设置用户名/密码。我使用了我的域凭据并得到了同样的错误。我的预感是BizTalk主机凭证可能仍然用于启动RPC调用。

0 个答案:

没有答案