删除单个消息MSMQ

时间:2009-01-20 22:38:24

标签: .net vb.net msmq

是否可以从MSMQ消息队列中删除单个消息?我有一个Queue对象,一个偷看的消息(对象)和消息的ID,我可以看到一种删除(或清除)整个队列的方法,但我看不到删除的方法它自己的消息,我已经尝试通过偷看找到它,但我收到“光标无效”的错误

感激不尽的任何帮助

4 个答案:

答案 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);
        }
    }