2016-12-14 3 views
-1

Я попытался отправить сообщение в локальной очереди, а также в Remote Queue.C# MSMQ MessageQueue Id - Как получить Valid Guid

Пробы Источник является

Guid queueId; 

try 
{ 
    MessageQueue rmQ = new MessageQueue("FormatName:Direct=TCP:192.168.5.26\\Private$\\RemoteQueue"); 
    //MessageQueue rmQ = new MessageQueue(".\\Private$\\LocalQueue"); 
    rmQ.Send("Once again Mr.John Please come here..."); 

    queueId = rmQ.Id; 
} 
catch (ArgumentException ex) 
{ 
    throw ex; 
} 
catch (MessageQueueException ex) 
{ 
    throw ex; 
} 
catch (InvalidOperationException ex) 
{ 
    throw ex; 
} 
catch (Exception ex) 
{ 
    throw ex; 
} 

Во всех сценарии я получаю Guid.Empy но сообщение успешно очереди в очереди сообщений соответствующего аппарата.

Пожалуйста, ознакомьтесь со следующими Сделать снимок

enter image description here

Просьба помочь мне, как получить Действительный MessageQueue.Id

+0

Вы уверены, что хотите очереди ID? Или вам нужен идентификатор сообщения? –

+0

Но вы читали MSDN на 'ID'? https://msdn.microsoft.com/en-us/library/system.messaging.messagequeue.id(v=vs.110).aspx говорит: «Message Queuing устанавливает свойство Id при создании очереди. доступный для публичных очередей ». – rbm

+0

Я думаю, вы не читали последнюю часть комментария @ rbm/msdn docs. Вы получаете доступ к очереди _private_, и это не похоже на _have_ Id. –

ответ

1

Вы пытаетесь получить доступ к идентификатор частной очереди, которая не поддерживается. MSDN говорит:

Message Queuing устанавливает свойство Id при создании очереди. Это свойство доступно только для общедоступных очередей.

См

https://msdn.microsoft.com/en-us/library/system.messaging.messagequeue.id(v=vs.110).aspx

Смежные вопросы