Транзакции WCF - PullRequest
       7

Транзакции WCF

1 голос
/ 01 декабря 2010

Я представляю себе следующее использование службы WCF: (кассового аппарата)

Service Consumer 1                           Service Consumer 2
cashAcceptorService.BeginTransaction();     cashAcceptorService.StopDevice();
                                            //this should throw exception: device is locked / used in a transaction                                     
cashAcceptorService.AcceptMoney();          

cashAcceptorService.EndTransaction();

Потребители услуг 1 и 2 используют один и тот же экземпляр WCF. Интересно, эта функциональность уже реализована? Сделки WCF предлагают это?

Как вы видите это сделано?

Ответы [ 2 ]

0 голосов
/ 07 марта 2012

Всегда лучше понять концепцию распределенных транзакций. Я рекомендую прочитать эту статью http://www.codeproject.com/Articles/35087/Truly-Understanding-NET-Transactions-and-WCF-Imple

0 голосов
/ 01 декабря 2010

Если верно следующее:

  • Сервис взаимодействует с транзакционным объектом (например, базой данных)
  • Для службы включен поток транзакций

Тогда WCF действительно предлагает это.

Клиент может затем использовать класс TransactionScope . Любые транзакции, инициированные на клиенте, будут автоматически перенаправляться на сервис.

using(TransactionScope transactionScope = new TransactionScope())
{
     // Do stuff with the service here
     cashAcceptorService.AcceptMoney();
     //
     //
     transactionScope.Complete();
}

Обработка транзакций в WCF - это, как правило, целая глава книги, но этой информации должно быть достаточно, чтобы вы пошли по правильному пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...