In this chapter, you have seen how to define and control transactions in a WCF client application and service. An application can enlist in an existing transaction, or create a new transaction, by instantiating a TransactionScope object with the appropriate parameters. Transactions can flow from a client application, across the network, to the service. You can specify the transactional requirements of a WCF service by using the ServiceBehavior and OperationBehavior attributes. The operations in a WCF service can indicate that the transaction can be committed, by executing the OperationContext.Current.SetTransactionComplete method. An application can then finish a transaction by calling the Complete method of the TransactionScope object.
You have seen how to configure a WCF service and client application to include information about the transactions they are performing in the SOAP messages that they send and receive. You have also learned how using transactions can affect the design of a WCF service.