无法将 MSMQ 消息发送到服务器的第二个 DNS 名称

Bob*_*Bob 7 domain-name-system msmq

将此发布在 StackOverflow 上,但我认为它可能与这群人更密切相关。

我在向服务器上的第二个 DNS 名称发送 MSMQ 消息时遇到问题。如果我们为同一台服务器发送 IP,我们很好,但这不是我们在架构上要去的地方。关于为什么 MSMQ 会关心它收到的名称的任何想法?

这是我们的例子:

服务器信息:物理服务器 load-int-01,具有与之关联的第二个 IP 和 DNS 名称。第一个 IP/DNS: load-int-01, 有 IP10.0.10.10第二个 IP/DNS: load-intv, 有 IP10.0.10.20

使用的队列路径格式:

FormatName:DIRECT=OS:load-int-01\private$\MyQueue -> 工作正常

FormatName:DIRECT=OS:load-intv\private$\MyQueue -> 返回以下错误:

队列不存在或您没有足够的权限来执行此操作

我们也尝试过使用 IP 地址,两组 IP 都可以正常工作。

FormatName:DIRECT=TCP:10.0.10.10\private$\MyQueue-> 工作正常FormatName:DIRECT=TCP:10.0.10.20\private$\MyQueue-> 工作正常

squ*_*man 1

可能是由于反向查找造成的。我不确定 MSMQ 如何获取其主机名信息,但如果它从 Windows 获取主机名而不是第二个 IP 的 DNS 主机名,那么第二个 IP 的反向查找将失败,因为它将返回不同的第二个 dns 主机名然后是服务器的实际主机名。

  • 是的,刚刚与 Microsoft 通电话……这是 MSMQ 的限制。您无法在具有 DNS 别名的队列上接收信息。如果您使用两个注册表项:OptionalNames(如下所列)和 IgnoreOSNameValidation,则可以使用别名 DNS 名称发送到队列。要实现 IgnoreOSNameValidation 密钥,请使用本文:http://support.microsoft.com/default.aspx?scid=kb;EN-US;899611 返回我们的虚拟 ip,或者我们可能会保留发送的虚拟名称连接字符串(带有注册表设置)并使用 .\ 作为接收服务器名称...这有效。 (4认同)