You will need to restart MSMQ if you add network connections

Back in the old days when MSMQ first came out, machines were pretty static in their configuration. Once you had built them, they didn't change much and the network was always up and running by the time MSMQ started. Even those rich enough to have laptops with PCMCIA in had to reboot to get the cards picked up so nothing was dynamic. Now, years down the line, technology is much smarter - you can buy USB wireless network cards that burst into life when they are plugged in, for example.

MSMQ, though, isn't really aware of this development. During service startup (and only then), MSMQ calls GetAddrInfo() to get all the available addresses of the machine. It then binds to, and listens on, all of them but any dynamically created networks that appear afterwards will not be noticed as MSMQ does not currently (which includes MSMQ 5.0) monitor for them. 

Easy way to check if this is the case is to run "NETSTAT.EXE -A -N" at the command prompt - there should be no entries for <New IP address>:1801 as MSMQ won't be listening on this port.

[[Thanks to Xin Chen for the explanation]]

[[Edited January 12th, 2010]]

Another example of a problem scenario is where APIPA (Automatic Private IP Addressing) is used. If the machine is configured to "obtain an IP address automatically" but there is no DHCP server available (through fault or design) then a 169.256.x.x address will be generated for the network card to use. Unfortunately APIPA has to wait 60 seconds for the DHCP client to give up trying to get an address and by that time MSMQ has already started up.