我有很多代理人的申请表'通过MSMQ队列进行通信。其中一个代理将消息放入队列,我希望另一个消息消耗该消息,但这不会发生。因此,注册为该队列的侦听器的代理不会使用该消息,但消息会从队列中消失。 我有办法消费这个消息或者发生了什么事吗?
谢谢
更新 我已经取得了一些进展,我发现消息消失了,但现在我更加困惑。我有这样的事情:
private void queue_PeekCompleted(object sender, PeekCompletedEventArgs e)
{
var queue = (MessageQueue)sender;
Message message1 = queue.EndPeek(e);
var transaction = new MessageQueueTransaction();
transaction.Begin();
try
{
var message2 = queue.Receive(transaction);
// process the message
transaction.Commit();
}
catch (Exception ex)
{
// some code here
}
}
但是message1.Id与message2.Id不同
我也试过了
var message2 = queue.ReceiveById(message1.Id, transaction);
但它会引发异常......
关于这两个操作之间可能发生什么的任何想法?