Win2008 R2上的MSMQ不会接收来自较旧客户端的消息

我在这里和一个非常奇怪的问题作斗争。 我有一个安装了消息队列的Windows 2008 R2服务器。 在另一台机器上,运行Windows 2003是一个服务,它被设置为将消息发送到2008服务器上的公共队列。 但是,消息从不在服务器上显示。

我已经写了一个小的控制台应用程序,只是发送一个“Hello World”消息到2008年机器上的testing队列。 在XP或2003上运行这个应用程序绝对没有结果。 但是,当我尝试在Windows 7计算机上运行应用程序时,消息传递得很好。

我已经通过各种安全设置,在所有机器上禁用防火墙等。事件日志显示没有任何兴趣,没有例外被抛出的客户端。

在服务器上运行一个包嗅探器(WireShark)只显示一点点。 当试图从XP或2003发送消息时,我只能看到端口3527上的ICMP错误“Port Unreachable”(我收集的是MQPing数据包?)。 之后,沉默。 当我从Win7客户端尝试时,Wireshark显示了一个很好的数据包stream(正如所期望的那样 – 消息从Win7传递得很好)。

我已经在服务器上启用了MSMQ End2End日志logging,但是只有来自我的Win7机器发送的消息的条目出现在日志中。

所以不知何故,似乎邮件正在从XP或2003到我的2008服务器的路线悄悄地放弃。

有没有人有什么线索可能会导致这种神秘的行为?

– Jesper

哇! Twitter的力量是惊人的。 一个名叫John Breakwell的人( http://blogs.msdn.com/johnbreakwell/default.aspx )在我的微博上回答了这个问题,并指出我自己的一个线索,即ICMP“端口无法访问”。

他向我介绍了一个technet文章 ,告诉你如何重新启用端口3527上运行的ping服务。一个简单的registry黑客就花了(并重新启动MSMQ),现在我的Win2008服务器正在愉快地接收消息:-)

– Jesper

我解决了一个类似的问题(消息不是从2005年到2008年)。 “Everyone”用户被允许发送消息,但不允许“ANONYMOUS LOGON”用户。

您需要授权“ANONYMOUS LOGON”用户发送消息。 “Everyone”用户不包含匿名用户。

http://i.imgur.com/n7TAc.png