在 Windows Server 2016 上接收 MSMQ 消息
Receiving MSMQ messages on Windows Server 2016
我在 Windows Server 2016 机器上设置了一个队列,但我终究无法弄清楚如何从它远程接收消息。
MessageQueue.Receive()
会抛出
MessageQueueException (0x80004005): Access to Message Queuing system is denied
然后我在另一个装有 Windows Server 2008 R2 的机器上以相同的方式配置了一个队列,我可以很好地接收到该队列。
下面是关于我的设置的一些详细信息,以及我目前所做的尝试。
- 我使用的格式名称类似于
FORMATNAME:Direct=OS:machine-name\private$\queue-name
Everyone
和 Anonymous Logon
被授予队列的全部权限
- 服务器上的防火墙已完全禁用
- 我在 MSMQ 安全设置中取消选中 "Disable un-authenticated RPC calls"
我还应该检查什么?我怎样才能弄清楚这个问题?
我终于通过禁用 Secured Remote Read 使其工作:
To modify this default behavior and allow the Message Queuing server
to accept requests from domain computers that do not establish an
encrypted channel, add the
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security\NewRemoteReadServerAllowNoneSecurityClient
registry entry (a DWORD) and set it to 1.
我在 Windows Server 2016 机器上设置了一个队列,但我终究无法弄清楚如何从它远程接收消息。
MessageQueue.Receive()
会抛出
MessageQueueException (0x80004005): Access to Message Queuing system is denied
然后我在另一个装有 Windows Server 2008 R2 的机器上以相同的方式配置了一个队列,我可以很好地接收到该队列。
下面是关于我的设置的一些详细信息,以及我目前所做的尝试。
- 我使用的格式名称类似于
FORMATNAME:Direct=OS:machine-name\private$\queue-name
Everyone
和Anonymous Logon
被授予队列的全部权限- 服务器上的防火墙已完全禁用
- 我在 MSMQ 安全设置中取消选中 "Disable un-authenticated RPC calls"
我还应该检查什么?我怎样才能弄清楚这个问题?
我终于通过禁用 Secured Remote Read 使其工作:
To modify this default behavior and allow the Message Queuing server to accept requests from domain computers that do not establish an encrypted channel, add the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security\NewRemoteReadServerAllowNoneSecurityClient registry entry (a DWORD) and set it to 1.