问题
I'm battling a really weird problem here. I have a Windows 2008 R2 server with Message Queueing installed. On another machine, running Windows 2003 is a service that is set up to send messages to a public queue on the 2008 server. However, messages never show up on the server.
I've written a small console app that just sends a "Hello World" message to a test queue on the 2008 machine. Running this app on XP or 2003 results in absolutely nothing. However, when I try running the app on my Windows 7 machine, a message is delivered just fine.
I've been through all sorts of security settings, disabled firewalls on all machines etc. The event log shows nothing of interest, and no exceptions are being thrown on the clients.
Running a packet sniffer (WireShark) on the server reveals only a little. When trying to send a message from XP or 2003 I only see an ICMP error "Port Unreachable" on port 3527 (which I gather is an MQPing packet?). After that, silence. Wireshark shows a nice little stream of packets when I try from my Win7 client (as expected - messages get delivered just fine from Win7).
I've enabled MSMQ End2End logging on the server, but only entries from the messages sent from my Win7 machine are appearing in the log.
So somehow it seems that messages are being dropped silently somewhere along the route from XP or 2003 to my 2008 server.
Does anyone have any clues as to what might be causing this mysterious behaviour?
回答1:
A fellow named John Breakwell (http://blogs.msdn.com/johnbreakwell/default.aspx) answered to my tweets on this and pointed me to one of my own clues, namely the ICMP "Port Unreachable" one.
He referred me to a technet article that tells you how to re-enable the ping service running on port 3527. A simple registry hack was all it took (and a restart of MSMQ) and now my Win2008 server is happily receiving messages :-)
来源:https://stackoverflow.com/questions/2371905/msmq-on-win2008-r2-won-t-receive-messages-from-older-clients