MSMQ多播(PGM)绑定到错误的网络接口

时间:2009-12-30 22:05:44

标签: networking msmq

有没有人有幸使用MulticastBindIP注册表设置将MSMQ多播(PGM)绑定到特定网络接口?

MSMQ Multicast(PGM)似乎总是绑定到ipconfig列出的第一个接口。就我而言,我安装了VMware,因此我有两个虚拟网络接口(VMnet8和VMnet1)以及我的网卡。让MSMQ将PGM数据包发送到VMware虚拟接口是没有用的。

我试图使用MulticastBindIP registry setting(当然,在更改后重新启动MSMQ),但这似乎没有任何区别。例如,我的“本地连接”的IP地址是172.18.224.245,所以我设置了以下注册表项值:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters]
"MulticastBindIP"=dword:ac12e0f5

DWORD首先存储最重要的字节。但是,使用wireshark,我可以看到PGM数据包没有被发送到这个接口(但仍然被发送到ipconfig列出的第一个接口)。

文档可能有误,所以我也尝试过各种变体:首先是最不重要的字节,甚至使用(点分隔的IPv4样式)string value。似乎没有任何区别。我可以让MSMQ多播绑定到正确的接口的唯一方法是禁用所有虚拟接口。这不是一个可行的解决方案。

1 个答案:

答案 0 :(得分:4)

如果有人感兴趣,“MulticastBindIP是为Windows 2003 Server引入的,而不是后端移植到Windows XP”。感谢John Breakwell的帮助。请参阅此Microsoft newsgroup discussion for more details

我在Windows XP上找到的唯一解决方案是禁用除“Local Area Connection”之外的所有接口。当您重新启动MSMQ Windows服务时,它将绑定到正确的网络接口(因为它是唯一可用的网络接口)。我怀疑在运行WinXP的计算机中拥有多个网卡并不常见,但通常会有VMware或VirtualBox虚拟接口通过MSMQ绑定来解决此问题。

仅供参考,对于支持MulticastBindIP注册表设置的更新近的操作系统,关于该值是DWORD还是REG_SZ存在争议。