2012-01-17 3 views
7

Я пытаюсь отправить сообщение в удаленную очередь. Мой процесс не прерывается, но я все еще не вижу сообщение в удаленной очереди? Я бы предположил, что он потерпит неудачу, если он не сможет обработать сообщение?MSMQ Отправить сообщение для Remote Queue

Я заметил, что на моей локальной машине удаленная очередь указана в исходящих очередях, но там не видны сообщения. Очень невежественные здесь и все примеры показывают, что то, как я делаю (или, как я полагаю), является правильным.

код (Simple для теста):

using (var transaction = new TransactionScope()) 
    { 
     using (var queue = new MessageQueue(@"FormatName:DIRECT=OS:mymachine\MyQueueQueue")) 
     { 
      XDocument xdoc = XDocument.Parse("<root/>"); 

       var message = new Message(xdoc.ToString()); 
       queue.Send(message, MessageQueueTransactionType.Single); 
     } 

     transaction.Complete(); 
    } 

    Console.Read(); 
} 

Что я делаю неправильно? Странно ... нет ошибок, но ничего не видно. Запись работает в моей локальной очереди.

ответ

12

Очередь, которую вы видите на вашей локальной машине, - это то, как MSMQ передает сообщение с вашего устройства на удаленный компьютер. Поэтому не беспокойтесь об этом, пока на нем нет сообщений. Если на нем были сообщения, которые указывали бы, что удаленная очередь по какой-то причине недоступна.

Вероятные разрешения могут стать проблемой. Проверьте разрешения отправки в удаленной очереди. Если вызов идет в междоменном пространстве, вам необходимо добавить ANONYMOUS LOGON к вашим разрешениям.

Также попробуйте включить журнал событий MSMQ (если вы используете сервер 2008 или выше).

UPDATE

Похоже, вы вызываете общедоступный адрес очереди. Вы должны использовать частные очереди. Адрес тот же для ЧАСТНОГО $ директивы, за исключением:

FORMATNAME: DIRECT = OS: моя_машина \ PRIVATE $ \ MyQueueQueue

ТАКЖЕ: Ваше имя очереди myQueueQueue как в свой адрес очереди?

+0

Спасибо @hugh .... посмотрел журнал событий ... ничего не видел до сих пор. Посмотрим на разрешения – scarpacci

+0

спасибо, что это была передача/получение perms в этой очереди! Я очень благодарен. – scarpacci

+0

Обновил мой ответ –

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