我在这里遇到一个非常奇怪的问题。我有一台安装了消息队列的 Windows 2008 R2 服务器。在另一台计算机上,运行 Windows 2003 的服务被设置为将消息发送到 2008 服务器上的公共队列。但是,消息永远不会显示在服务器上。
我编写了一个小型控制台应用程序,它仅向 2008 年机器上的测试队列发送一条“Hello World”消息。在 XP 或 2003 上运行此应用程序绝对不会产生任何结果。但是,当我尝试在 Windows 7 计算机上运行该应用程序时,会正常发送一条消息。
我已经完成了各种安全设置,禁用了所有计算机上的防火墙等。事件日志没有显示任何有趣的内容,并且客户端上没有抛出任何异常。
在服务器上运行数据包嗅探器 (WireShark) 只能揭示一点点。当尝试从 XP 或 2003 发送消息时,我只在端口 3527 上看到 ICMP 错误“端口无法访问”(我收集到的是 MQPing 数据包?)。之后,一片寂静。当我从 Win7 客户端尝试时,Wireshark 显示了一个不错的小数据包流(正如预期的那样 - 消息从 Win7 传递得很好)。
我已在服务器上启用 MSMQ End2End 日志记录,但日志中仅显示从我的 Win7 计算机发送的消息中的条目。
因此,不知何故,消息似乎在从 XP 或 2003 到我的 2008 服务器的路径上的某个地方默默地被丢弃。
有谁知道是什么导致了这种神秘行为?
一个名叫约翰·布雷克韦尔(John Breakwell)的人(http://blogs.msdn.com/johnbreakwell/default.aspx http://blogs.msdn.com/johnbreakwell/default.aspx)回答了我的推文,并向我指出了我自己的线索之一,即 ICMP“端口无法到达”线索。
他向我推荐了一个技术网文章 http://technet.microsoft.com/en-us/library/cc731882(WS.10).aspx它告诉您如何重新启用在端口 3527 上运行的 ping 服务。只需一个简单的注册表破解(并重新启动 MSMQ),现在我的 Win2008 服务器正在愉快地接收消息:-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)