Msmq NServiceBus:如何从错误队列中移动消息
我的应用程序中有一个错误,导致许多消息被移动到错误队列中。现在我已经修复了这个错误,有没有简单的方法将它们移回原始队列以便处理它们?您可以使用一个简单的命令行工具,Msmq NServiceBus:如何从错误队列中移动消息,msmq,nservicebus,Msmq,Nservicebus,我的应用程序中有一个错误,导致许多消息被移动到错误队列中。现在我已经修复了这个错误,有没有简单的方法将它们移回原始队列以便处理它们?您可以使用一个简单的命令行工具,ReturnToSourceQueue.exe,它包含在NServiceBus中 它位于tools文件夹IIRC.private const string QUEUE\u NAME=“private$\\localqueue”; private const string QUEUE_NAME = "private$\\localq
ReturnToSourceQueue.exe
,它包含在NServiceBus中
它位于tools
文件夹IIRC.private const string QUEUE\u NAME=“private$\\localqueue”;
private const string QUEUE_NAME = "private$\\localqueue";
private const string ERROR_QUEUE_NAME = "private$\\localerrorqueue";
if (!MessageQueue.Exists(".\\" + QUEUE_NAME))
return;
if (!MessageQueue.Exists(".\\" + ERROR_QUEUE_NAME))
return;
var messageQueues = MessageQueue.GetPrivateQueuesByMachine(Environment.MachineName);
var queue = messageQueues.Single(x => x.QueueName == QUEUE_NAME);
var errorQueue = messageQueues.Single(x => x.QueueName == ERROR_QUEUE_NAME);
var noOfErrorMessages = errorQueue.GetAllMessages().Count();
if (noOfErrorMessages == 0)
return;
using (var transaction = new MessageQueueTransaction())
{
transaction.Begin();
for (var i = 0; i < noOfErrorMessages; i++)
{
var message = errorQueue.Receive(transaction);
queue.Send(message, transaction);
}
transaction.Commit();
}
private const字符串错误\u QUEUE\u NAME=“private$\\localerrorqueue”;
如果(!MessageQueue.Exists(“.\\”+队列名称))
返回;
如果(!MessageQueue.Exists(“.\\”+错误\队列\名称))
返回;
var messageQueues=MessageQueue.GetPrivateQueuesByMachine(Environment.MachineName);
var queue=messageQueues.Single(x=>x.QueueName==queue\u NAME);
var errorQueue=messageQueues.Single(x=>x.QueueName==ERROR\u QUEUE\u NAME);
var noOfErrorMessages=errorQueue.GetAllMessages().Count();
if(noorFerrormessages==0)
返回;
使用(var transaction=new MessageQueueTransaction())
{
transaction.Begin();
对于(var i=0;i
如果您反映了这些程序集,就可以很容易地找到如何围绕此过程制作其他工具,这样您就不必总是登录到服务器并运行命令行工具。