使用“localhost”时MSMQ :: GetPrivateQueuesByMachine失败

时间:2011-03-18 14:20:14

标签: c# msmq

我在本地和许多服务器上运行软件,执行以下操作:

var queues = MessageQueue.GetPrivateQueuesByMachine("localhost");

特别是一台服务器抛出异常:

System.Messaging.MessageQueueException: Message Queue service is not available.
  at System.Messaging.MessageQueue.GetPrivateQueuesByMachine(String machineName)

MSMQ的安装方式与我在其他机器上的安装方式相同。我还有多个WCF服务成功绑定到net.msmq://localhost/private/...

是否有某些原因导致MSMQ可能未绑定到localhost?

在签出MSDN之后,似乎我应该使用“。”,这很有用,但是当localhost似乎完全有效时,我宁愿避免更改代码和重新部署。 FWIW,这是我运行的其他一些测试的结果:

var queues = MessageQueue.GetPrivateQueuesByMachine("."); // succeeds
var queues = MessageQueue.GetPrivateQueuesByMachine("localhost"); // fails
var queues = MessageQueue.GetPrivateQueuesByMachine("127.0.0.1"); // fails
var queues = MessageQueue.GetPrivateQueuesByMachine("machineName"); // fails

1 个答案:

答案 0 :(得分:1)

可能有一个HOSTS文件条目将localhosts IP地址映射到某个机器名。