I spent some time struggling with a WCF service with a .NET MSMQ binding. The public queue resided on a test Windows Server 2003 machine. Everything worked fine on my machine, but when I installed the WCF service on the test server, I got the following error message:
An error occurred while opening the queue: The queue does not exist or you do not have sufficient permissions to perform the operation. (-1072824317, 0xc00e0003). The message cannot be sent or received from the queue. Ensure that MSMQ is installed and running. Also ensure that the queue is available to open with the required access mode and authorization.
The error code (0xc00e0003) corresponds to MQ_ERROR_QUEUE_NOT_FOUND.
Turns out, I needed to reference the queue with net.msmq://server/queue instead of net.msmq://server/public/queue. It's unfortunate the latter URL works in some cases but not others.