我正在尝试使用主机文件中的别名来指向包含 MSMQ 的服务器。如果我在 MSMQ 路径中指定实际的服务器名称,那么一切正常:
var queue = new MessageQueue("FormatName:DIRECT=OS:queue-server\Private$\some-queue");
var enumerator = queue.GetMessageEnumerator2();
while (enumerator.MoveToNextRecord())
{
// Do something
}
但是,如果我创建以下主机文件条目:
XXX.XXX.XXX.XXX queue-server-alias #queue-server
然后使用别名引用队列:
var queue = new MessageQueue("FormatName:DIRECT=OS:queue-server-alias\Private$\some-queue");
然后我收到以下错误:
The queue does not exist or you do not have sufficient permissions to perform the operation.
主机文件条目是正确的,我可以 ping 别名并返回正确的 IP 地址。我已经阅读了以下详细介绍各种 MSMQ 路径格式的文章,但似乎都没有解决问题: Difference between Path name and Format name when access MSMQ queues。
有任何想法吗?