WCF事务几种传播模式介绍

在WCF中,关于WCF事务有一种模式叫做传播模式。而且在传播模式中,又可以被分为四种,分别为:Client/Service 、 Client 、Service、None。#t#

WCF事务之Client/Service事务

Client/Serviec模式当客户端有事务的时候使用客户端事务,客户端没有事务的时候使用服务事务。要配置为该模式我们要完成一些步骤:

1、选择一个事务相关的绑定,并通过将transactionFlow设置为True启用事务流选项

例:

 

 
 
 
  1. < wsHttpBinding> 
  2. < binding name="TranWSBinding"
     transactionFlow="true" > 
  3. < reliableSession enabled="true"/> 
  4. < /binding> 
  5. < /wsHttpBinding> 

2、将操作契约中事务流选项设置为 [TransactionFlow(TransactionFlowOption.Allowed)]

3、将操作行为的TransactionScopeRequired设为true

WCF事务之Client事务

Client模式确保服务只会使用客户端的事务,可以采用以下步骤配置该模式:

1、选取一个事务相关的绑定并通过将transactionFlow设置为True启用事务流功能

2、将操作契约中事务流选项设置为TransactionFlowOption.Mandatory

3、将操作行为的TransactionScopeRequired设为true

WCF事务之Service事务

Service模式确保服务总是为拥有一个事务,而不管它的客户端是否使用事务,该服务是一个新事务根,我们采用下列步骤配置该模式:

1、选取任意绑定,如果选择了一个事务相关的绑定,保留其transactionFlow的默认值,或显式的将他设置为false

2、不要应用TransactionFlow特性,或设置为TransactionFlowOption.NotAllowed

3、把操作行为的TransactionScopeRequired设置为TRUE

WCF事务之None事务

None事务模式是指服务永远不使用事务,可以采用下列配置方式

1、选取任意绑定、如果选择了一个事务相关的绑定,保留其transactionFlow的默认值,或显式的将他设置为false

2、不要应用TransactionFlow特性,或设置为TransactionFlowOption.NotAllowed

3、把操作行为的TransactionScopeRequired设置为false
 

THE END