Спасибо, Джон!Я только что создал службу WCF, которая получает сообщения от MSMQ и передает их обратно удаленному клиенту.Клиент может запросить х количество сообщений.
Клиент сначала вызывает сервис, чтобы начать транзакцию.Служба складывает его в коллекцию с GUID.Это руководство отправляется обратно клиенту, и клиент будет использовать его для всех других вызовов службы.Поэтому служба может найти соответствующую транзакцию и использовать ее с Receive ().
После того как клиент выполнил всю свою работу, он вызывает метод Terminate (bool commit) с GUID, который вызывает Commit или Abort для транзакции.Но что добавить, если Commit или Abort никогда не вызывается из-за сбоя клиента или разрыва сети?Это мое беспокойство ...
Я сделал это, потому что MSMQ 3 не поддерживает удаленные транзакции (только MSMQ 4).