私は、リモートMSMQでトランザクションを使用しているときにエラー「要求されたメッセージは、指定したキューに見つかりませんでした」取得しています「要求されたメッセージは、指定したキューに見つかりませんでした」。トランザクションが削除された場合、またはキューが同じマシンに移動された場合、すべて正常に動作します。キューは、Windows 2008マシン上にあり、クライアント(以下のコード)は、Windows 7マシン上で実行されます。リモートMSMQ、トランザクションとReceiveByIdが失敗したが -
//Throws above error
using (MessageQueueTransaction mqTxn = new MessageQueueTransaction())
{
mqTxn.Begin();
Message message = messageQueue.ReceiveById(peekedMessage.Id, mqTxn);
mqTxn.Abort();
}
//Throws above error
using (TransactionScope txnScope = new TransactionScope())
{
Message message = messageQueue.ReceiveById(peekedMessage.Id, MessageQueueTransactionType.Automatic);
}
//Works fine
Message message = messageQueue.ReceiveById(peekedMessage.Id);
P.S. peekedMessageは、これらの呼び出しの直前に覗き込まれたメッセージです。 peekedMessage.Idが最初のキューアイテムと一致することを確認しました。キューはトランザクションです。それはリモート・キューケースでは動作しませんので