无法使用2个DNS名称发送到MSMQ

问题描述 投票:11回答:5

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

服务器信息:

物理服务器load-int-01,具有与其关联的第二个IP和DNS名称。

  • 第一个IP / DNS:load-int-01,IP为10.0.10.10
  • 第二个IP / DNS:load-intv,IP为10.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→正常工作
dns msmq
5个回答
9
投票

我们刚刚与Microsoft下了电话。这是MSMQ的局限性。您不能在DNS名称与服务器NETBIOS名称不同的队列上接收。如果您使用上面提到的两个注册表项,OptionalNames和IgnoreOSNameValidation,则可以使用备用DNS名称发送到队列。

为我们返回虚拟IP,或者我们可以保留发送连接字符串的虚拟名称(使用reg设置),并使用。\作为接收服务器的名称...有效。

感谢您的帮助。


2
投票

发件人:

http://support.microsoft.com/default.aspx?scid=kb;EN-US;899611

默认情况下,消息队列验证接收到的消息,以确定该消息是否适合本地计算机。如果该消息不适用于本地计算机,则该消息将被拒绝。

因此,请遵循本文中有关“ IgnoreOSNameValidation”的部分,希望对您有所帮助。


0
投票

非常令人沮丧。我正在尝试迁移一些MSMQ目标(Web服务),我想我将必须配置它们以使用虚拟IP,并迁移虚拟IP,因为迁移NetBIOS名称将是一项任务。

[MSMQ应该重新命名为MSMQ-1982,因为它似乎早于1983年发明了一个狡猾且有用的抽象层,称为“ DNS”。]]


0
投票

我遇到了同样的问题,并使它起作用。对我来说,诀窍是在设置IgnoreOSNameValidation注册表项之后,您必须重新启动消息队列服务。


0
投票

这确实对我有用:

© www.soinside.com 2019 - 2024. All rights reserved.