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

BizTalk MSMQ适配器:从远程专用队列读取时出现问题,biztalk,msmq,Biztalk,Msmq,我在BizTalk中遇到MSMQ接收位置设置问题。我正在寻找解决问题的方法。非常感谢您在这方面的帮助 以下是设置: BizTalk Server–Windows Server 2012-托管在域上 a) MSMQ接收位置指向远程专用队列 b) BizTalk MSMQ主机实例在域帐户下运行 承载MSMQ的服务器–Windows Server 2008 R2-不在域上 a) 设置专用事务性和非事务性队列 b) 为所有人、匿名用户和网络服务用户提供了对这两个队列的完全控制 c) 使用相同的密码创建了

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

以下是设置:

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

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

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

承载MSMQ的服务器–Windows Server 2008 R2-不在域上

a) 设置专用事务性和非事务性队列

b) 为所有人、匿名用户和网络服务用户提供了对这两个队列的完全控制 c) 使用相同的密码创建了一个影子帐户bthost.instance,以确定这是否解决了问题

以下是我用来排除故障的一些步骤:

  • 在BizTalk中启用接收位置时,我收到一个错误,指出“用户没有接收消息的权限。请检查队列权限。”

  • 我能够成功地发送到MSMQ服务器上承载的队列。但是,MSMQ对接收(RPC)和发送(TCP)使用不同的协议。我相信这可以解释这种差异

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

  • 我已遵循以下说明。我已确保DTC配置正确,已为消息队列设置windows防火墙例外,并已从计算机管理的消息队列服务器安全设置中清除“禁用未经身份验证的RPC调用”(在BizTalk和承载消息队列的服务器上)

  • 基于以下内容,添加了注册表设置HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security\NewRemoteReadServerAllowOneSecurityClient,并将其设置为1

  • 使用TCP:IP地址和OS:Server名称约定进行测试。**这两种约定都会导致上述相同错误。FORMATNAME:DIRECT=TCP:xxx.xx.x.xx\PRIVATE$\QueueName和FORMATNAME:DIRECT=OS:ServerName\PRIVATE$\QueueName

  • 我编写了一个C#console程序来读取同一事务队列。我从BizTalk server执行了控制台程序。我注意到我可以使用AD凭据从队列中读取。但是,我无法使用BizTalk主机凭据进行读取。我收到“拒绝访问消息队列系统”


  • 我们可以选择从BizTalk接收位置设置用户名/密码。我使用了域凭据,但出现了相同的错误。我的直觉是,BizTalk主机凭据可能仍在用于启动RPC调用。

    如果从BizTalk server运行控制台应用,但使用BizTalk服务凭据(shif+右键单击->以其他用户身份运行)console应用程序工作吗?您的AD用户拥有哪些主机实例运行用户没有的权限?