2015-09-07 4 views

ответ

1

Сделка WCF позволяет нам выполнять операции, которые потребители могут использовать внутри транзакций. Мы можем вызвать операцию обслуживания wcf внутри области транзакции (например) и убедиться, что наша операция будет атомарной. Это действительно полезно для обеспечения целостности в наших операциях.

Например, предположим, что у нас есть две ФОС операции:

  • дебет (двойной Монт, строка счета);
  • депозит (двойной мон, строка

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

try 
{ 
    using(TransactionScope scope = new TransactionScope()) 
    { 
    IserviceClient client = new IserviceClient(); 
    client.debit(499,"acdf5-sdsd-4546-223-2"); 
    client.deposit(499,"45651-as4d-ghhd-222-1"); 

    scope.Complete(); 
    } 
} 
catch 
{ 
    Debug.WriteLine("Some error occurred...");  
} 

Это может быть помощь FUL. http://www.codeproject.com/Articles/183708/WCF-Transactions-Brief-Introduction

EDIT: вы должны использовать транзакции, когда операция службы изменяет любое состояние (вставка, обновление или удаление базы данных, любая модификация файла), хотя транзакции не полезны, например, при простой операции чтения.

+0

Спасибо друг. Теперь я получил четкое представление о том, как использовать транзакцию wcf. Тем не менее я жду примера, когда транзакция wcf является лучшей или только опцией. –

+0

Вы должны использовать транзакции, когда операция службы меняет любое ** состояние ** (вставка, обновление или удаление базы данных, любая модификация файла), хотя транзакции не полезны, если вы выполняете, например, простое ** чтение **. –

Смежные вопросы