В моем приложении была ошибка, из-за которой в очередь ошибок помещалось несколько сообщений. Теперь, когда я исправил ошибку, существует ли простой способ переместить их обратно в исходную очередь, чтобы их можно было обработать?
Вы можете использовать простой инструмент командной строки, ReturnToSourceQueue.exe, который входит в состав NServiceBus.
ReturnToSourceQueue.exe
Он находится в папке tools IIRC.
tools
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(); }