background image

支持事务的绑定流转默认也是被关闭,要通过配置或者编程的方式开启该选项;

WCF 支 持 三 种 不 同 的 事 务 处 理 协 议 : OleTx 、 WS-AT  1.0 、 WS-AT  1.1  分 别 对 应 于
TransactionProtocol 中的三个静态只读

 

 

 

 

 

 

OleTransactions(

Default

)

WSAtomicTransationOctober2004 、WSAtomicTransaction11

NetTcpBinding 和 NetNamedPipeBinding 通 过 TransactionFlow 设 置 支 持 事 务 的 开 关 ,
TransactionProtocol 设置事务协议;

WSHttpBinding、WSDualHttpBinding 和 WSFedrationHttpBinding 支持协议 WS-AT 1.0,而
WS2007HttpBinding 和

WS2007FederationHttpBinding 支 持 协 议 WS-AT  1.1, 它 们 仅 仅 只 有 TransactionFlow  没 有
TransactionProtocol 设置事务协议;

<configuration>
  <system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding name="transactionalTcpBinding" transactionFlow="true"
                 transactionProtocol="WSAtomicTransactionOctober2004">
        </binding>
      </netTcpBinding>

      <ws2007HttpBinding>
        <binding name="transactionalHttpBinding" transactionFlow="true"></binding>
      </ws2007HttpBinding>
    </bindings>
    <services>
      <service name="Service.WithdrawService">
        <endpoint binding="customBinding"
                  bindingConfiguration="transactionalTcpBinding"
                  contract="Service.Interface.IWithdrawService" />
      </service>
      <service name="Service.DepositService">
        <endpoint binding="customBinding"
                  bindingConfiguration="transactionalHttpBinding" 
                  contract="Service.Interface.IDepositService" />
      </service>
    </services>
  </system.serviceModel>