是否可以从MSMQ消息队列中删除单个消息?我有一个Queue对象,一个偷看的消息(对象)和消息的ID,我可以看到一种删除(或清除)整个队列的方法,但我看不到删除的方法它自己的消息,我已经尝试通过偷看找到它,但我收到“光标无效”的错误
感激不尽的任何帮助
答案 0 :(得分:9)
您是否尝试使用MessageQueue.ReceiveById
?
答案 1 :(得分:2)
您可以尝试QueueExplorer。
答案 2 :(得分:0)
使用其中一个接收功能。取决于您的语言/技术(c,com,.net)。
对于.net,它将是MessageQueue.ReceiveById方法。或任何你认为合适的。取决于您要移除的消息(第一个,最后一个,使用光标或ID)。
答案 3 :(得分:0)
// Language C#
// Delete Message Button click handler.
public void DeleteOneMessage()
{
// I created winforms application and added a reference to "System.Messaging"
// Added one edit box name = queueNameTextBox
// On Form_Load set queueNameTextBox.Text = @"private$\myQueueName"
// Connect to the queue on the local computer.
MessageQueue myQueue = new MessageQueue(queueNameTextBox.Text);
// Set the formatter to indicate body contains an Order.
myQueue.Formatter = new BinaryMessageFormatter();
try
{
// Receive and format the message.
object myMessage = myQueue.Receive();
MessageBox.Show("One message removed from the queue.");
}
catch (MessageQueueException mqe)
{
MessageBox.Show(mqe.Message);
}
catch (InvalidOperationException e)
{
MessageBox.Show(e.Message);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}