weenoid
weenoid

Reputation: 1186

Using MSMQ with a Hosts File entry

I'm trying to use an alias in the hosts file to point to a server containing an MSMQ. If I specify the actual server name in the MSMQ path then everything works fine:

var queue = new MessageQueue("FormatName:DIRECT=OS:queue-server\Private$\some-queue");
var enumerator = queue.GetMessageEnumerator2();

while (enumerator.MoveToNextRecord())
{
    // Do something
}

However if I create the following hosts file entry:

XXX.XXX.XXX.XXX     queue-server-alias  #queue-server

Then reference the queue using the alias:

var queue = new MessageQueue("FormatName:DIRECT=OS:queue-server-alias\Private$\some-queue");

Then I get the following error:

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

The hosts file entry is correct and I can ping the alias and it returns the correct IP address. I've read through the following article detailing the various MSMQ path formats but none of them seem to resolve the issue: Difference between Path name and Format name when accessing MSMQ queues.

Any ideas?

Upvotes: 2

Views: 1834

Answers (1)

tom redfern
tom redfern

Reputation: 31770

Open your registry, make sure

HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ\Parameters\IgnoreOSNameValidation

is set to 1 (DWORD value)

This will mean that msmq will not validate the destination queue before trying to send the message.

(from John Breakwell's post here)

Upvotes: 3

Related Questions