Posted this on StackOverflow, but I think it's probably more germane to this crowd.

I am having an issue with sending a MSMQ message to the second DNS name on a server. If we send the IP for that same server, we're fine, but that's not where we are going architecturally. Any ideas as to why MSMQ would care about which name it receives?

Here is our example:

Server Information: The physical server load-int-01, has a second IP and DNS name associated with it. First IP/DNS: load-int-01, with IP Second IP/DNS: load-intv, with IP

Queue path formats used:

FormatName:DIRECT=OS:load-int-01\private$\MyQueue -> Works Fine

FormatName:DIRECT=OS:load-intv\private$\MyQueue -> Returns the following error:

The queue does not exist or you do not have sufficient permissions to perform this operation

We have also tried using the IP addresses instead, and both sets of IPs work fine.

FormatName:DIRECT=TCP:\private$\MyQueue -> Works Fine FormatName:DIRECT=TCP:\private$\MyQueue -> Works Fine

4 Answers 4


Could be due to reverse lookup. I'm not sure how MSMQ gets its hostname info, but if it's getting the hostname from Windows and not the DNS hostname of the second IP then a reverse lookup for the second IP would fail since it would return the second dns hostname which is different then the actual hostname of the server.

  • Tried that. Reverse lookups of both IPs returned the correct DNS names.
    – Bob
    Jun 4, 2009 at 20:13
  • Right, but if MSMQ is expecting any reverse lookup to come back with the actual comptername of the server then your reverse lookup for the 2nd IP is going to fail as it will have a different name than your machine name. Just a thought.
    – squillman
    Jun 4, 2009 at 20:24
  • 4
    Yup, just got off the phone with Microsoft.... This is a limitation of MSMQ. You can not receive on queues with aliased DNS names. You can SEND to queues with an aliased DNS name provided you use two registry keys, OptionalNames (listed below) and IgnoreOSNameValidation. to implement the IgnoreOSNameValidation key, use this article: support.microsoft.com/default.aspx?scid=kb;EN-US;899611 Back to virtual ip's for us, or we might keep the virtual name for the sending connection strings (with the reg settings) and use .\ for the receiving servername...that works.
    – Bob
    Jun 5, 2009 at 20:18

To resolve via DNS use the DNS name rather than the IP this way--both should resolve:


Additionally, run the following registry script on the MSMQ server (per http://support.microsoft.com/kb/306785):

reg.exe ADD HKLM\Software\Microsoft\MSMQ\Parameters /V IgnoreOSNameValidation /t REG_DWORD /d 1 /f
  • BTW on Win2k3 this doesn't work if the client and the MSMQ server are on the same box. Apr 3, 2012 at 16:08
  • The link doesn't work
    – slayernoah
    Jan 30, 2017 at 15:00

MSMQ is probably expecting the computer's netbios name to match the dns hostname used to get there. It's the same problem you have when you try to use a CNAME to map a drive to a Windows server.

There is a way to alias the name for it by adding a registry entry:

Add Value: OptionalNames REG_SZ with as value the name of the alias 
If you make it a type REG_MULTI_SZ, you can add multiple aliases.

Are you sending on the same machine (local to load-intv) or from a remote machine?

Also, what IP addresses are actually returned when you query DNS for load-intv and load-int-01? Just the ones you mention - and respectively - or extra ones?

Any HOSTS files involved? If so, do you have any other DNS names mapped to

Cheers John Breakwell (MSFT)

  • We're using the connection string both locally and remotely...same results. No hosts files, and no names other than the two provided. Thanks!
    – Bob
    Jun 5, 2009 at 13:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.