共用方式為


ServiceModel 交易組態

Windows Communication Foundation (WCF) 提供三個屬性來設定服務的交易:transactionFlowtransactionProtocoltransactionTimeout

設定 transactionFlow

大部分預先定義的繫結 WCF 提供項目會包含 transactionFlowtransactionProtocol 屬性,因此您可以針對使用特定交易流程通訊協定的特定端點,將繫結設定為接受傳入交易。 此外,您可以使用 transactionFlow 元素及其 transactionProtocol 屬性來建置您自訂的繫結。 如需詳細瞭解如何設定組態元素,請參閱 <binding>WCF 組態結構描述

transactionFlow 屬性會指定是否要為使用繫結的服務端點啟用交易流程。

設定 transactionProtocol

transactionProtocol 屬性會指定交易通訊協定與使用繫結的服務端點一起使用。

以下是組態區段的範例,其中設定了支援異動流程的指定繫結程序,以及使用 WS-AtomicTransaction 通訊協定的範例。

<netNamedPipeBinding>  
   <binding name="test"  
      closeTimeout="00:00:10"  
      openTimeout="00:00:20"
      receiveTimeout="00:00:30"  
      sendTimeout="00:00:40"  
      transactionFlow="true"  
      transactionProtocol="WSAtomicTransactionOctober2004"  
      hostNameComparisonMode="WeakWildcard"  
      maxBufferSize="1001"  
      maxConnections="123"
      maxReceivedMessageSize="1000">  
   </binding>  
</netNamedPipeBinding>  

設定 transactionTimeout

您可以在組態檔的 behavior 元素為您的 WCF 服務設定 transactionTimeout 屬性。 下列程式碼會示範如何執行此項作業。

<configuration>  
   <system.serviceModel>  
      <behaviors>  
         <behavior name="NewBehavior" transactionTimeout="00:01:00" /> <!-- 1 minute timeout -->  
      </behaviors>  
   </system.serviceModel>  
</configuration>  

transactionTimeout 屬性會指定在服務所建立之新交易必須完成的時間週期。 這個屬性可當做任何建立新異動之作業的 TransactionScope 逾時使用,若套用了 OperationBehaviorAttribute,則 TransactionScopeRequired 屬性會設為 true

逾時會指定從建立異動到完成兩階段異動認可通訊協定中的階段 1 的時間範圍。

如果在 service 組態區段中設定這個屬性,您至少應該以 OperationBehaviorAttribute 套用一個對應服務的方法,其中 TransactionScopeRequired 屬性設定為 true

請注意,所使用的逾時值會是這個 transactionTimeout 組態設定和任何 TransactionTimeout 屬性間的較小值。

另請參閱