Я знаю, что есть другие вопросы по этому вопросу, но на самом деле я не отвечаю на этот вопрос.
Код, который у меня есть:
using (var mQ = new MessageQueue(qPath))
{
Console.WriteLine("machine: {0}, name : {1}, path : {2}", mQ.MachineName ,mQ.QueueName, mQ.Path);
Console.WriteLine("message count : {0}",mQ.GetAllMessages().Count());
}
Когда я пытаюсь GetAllMessages () в локальной очереди, конечно, все работает:
string qPath = @".\private$\queueName";
Однако, когда я пробую очередь на удаленном компьютере в том же домене, который я могу успешно пропинговать только с помощью имени компьютера, я получаю эту ошибку:
Invalid queue path name. at System.Messaging.MessageQueue.ResolveFormatNameFromQueuePath
Я пробовал:
string qPath = @"remoteMachineName\private$\queueName";
string qPath = @"remoteMachineName.qualified.net\private$\queueName";
string qPath = @"DIRECT=OS:remoteMachineName.qualified.net\private$\queueName";
string qPath = @"DIRECT=OS:remoteMachineName\private$\queueName";
string qPath = @"DIRECT=OS:ip.ad.re.ss\private$\queueName";
string qPath = @"DIRECT=TCP:ip.ad.re.ss\private$\queueName";
Все они дают мне ту же ошибку.
Документация в сети гласит, что частные очереди МОГУТ быть найдены, если вы знаете полный «путь».
Это правда? если да, то как компилировать полный путь ??
ура