在WCF中,关于WCF事务有一种模式叫做传播模式。而且在传播模式中,又可以被分为四种,分别为:Client/Service 、 Client 、Service、None。#t#
WCF事务之Client/Service事务
Client/Serviec模式当客户端有事务的时候使用客户端事务,客户端没有事务的时候使用服务事务。要配置为该模式我们要完成一些步骤:
1、选择一个事务相关的绑定,并通过将transactionFlow设置为True启用事务流选项
例:
- < wsHttpBinding>
- < binding name="TranWSBinding"
transactionFlow="true" >- < reliableSession enabled="true"/>
- < /binding>
- < /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