Ich erhalte den Fehler "Die angeforderte Nachricht wurde in der angegebenen Warteschlange nicht gefunden", wenn Transaktionen in remote MSMQ verwendet werden. Wenn die Transaktion entfernt wird oder wenn die Warteschlange auf denselben Computer verschoben wird, funktioniert alles einwandfrei. Die Warteschlange befindet sich auf Windows 2008-Computer und der Client (Code unten) wird auf Windows 7-Computer ausgeführt.Remote-MSMQ, Transaktionen und ReceiveById schlägt fehl - "Die angeforderte Nachricht wurde nicht in der angegebenen Warteschlange gefunden"
//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 sind Nachrichten, die kurz vor diesen Aufrufen angezeigt werden. Ich habe überprüft, dass die peekedMessage.Id mit dem ersten Element der Warteschlange übereinstimmt. Die Warteschlange ist transaktional.