Нет сообщений в MSMQ - PullRequest
       4

Нет сообщений в MSMQ

2 голосов
/ 09 марта 2011

Я пишу консольное приложение, которое добавляет сообщение в локальную очередь.Но сообщение не вставляется.

Я создал очередь как транзакционную и вставляю примерно так:

      string path = @"FormatName:DIRECT=OS:computername\private$\myqueue";
        MessageQueue queue = new MessageQueue();
        queue.Path = path;            

        foreach (string msg in messages)
        {
            queue.Send("inputMessage", msg);

        }

Что-то не так?

Спасибо.

Ответы [ 4 ]

7 голосов
/ 10 марта 2011

Это просто.Вы отправляете нетранзакционное сообщение в транзакционную очередь.MSMQ отклонит сообщение.

Используйте "MessageQueue.Send (Object, MessageQueueTransaction)" Метод

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

Приветствия
Джон Бруквелл

2 голосов
/ 09 марта 2011

Вам необходимо создать очередь, прежде чем вы сможете отправить ее (это однократная операция, если вы не удалите очередь):

MessageQueue queue;
if (MessageQueue.Exists(path))
  queue = new MessageQueue(path);
else
  queue = MessageQueue.Create(path);
0 голосов
/ 18 мая 2017

если у вас есть транзакционные очереди, убедитесь, что вы используете транзакции

using(MessageQueueTransaction tx = new MessageQueueTransaction()) {
    tx.Begin();
    queue.Send(message, tx);
    tx.Commit(); 
}

см. Дополнительную информацию в другом сообщении Сообщение не достигает MSMQ при совершении транзакции

0 голосов
/ 09 марта 2011

попробуйте поменять порядок при отправке.

Мне нужно перепроверить, но я почти уверен, что ордер - объект, метка

queue.Send(msg, "inputMessage");
...