编辑队列中的MSMQ消息

Vac*_*ano 6 c# msmq nservicebus

我需要能够在错误队列中编辑消息(以便可以将它们重新发送到实际队列以进行重新处理).

我想制作我自己的自定义工具来执行此操作(因为我的消息需要特定的格式以使其易于被支持人员阅读).

我知道这是可能的,因为应用程序" QueueExplorer "就是这样做的.

有谁知道我如何加载MSMQ消息(这不是队列中的第一个),编辑它,并将其保存回队列?

小智 3

使用如下内容迭代消息:

List<Message> msgList = new List<Message>();

using (MessageEnumerator me = queue.GetMessageEnumerator2())
{
  while (me.MoveNext(new TimeSpan(0, 0, 0)))
  {
     Message message = me.Current;
     msgList.Add(message)
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以遍历列表,处理每条消息。根据原始消息创建新消息。然后删除现有消息并添加新消息。

foreach (Message message in msgList)
{
  //Create a new message as required, add it, then remove the old message
  MessageQueue.ReceiveById(message.MessageId);
}
Run Code Online (Sandbox Code Playgroud)