ServiceModel-TransaktionskonfigurationServiceModel Transaction Configuration

Windows Communication Foundation (WCF) stellt drei Attribute zum Konfigurieren von Transaktionen für einen Dienst bereit: transactionFlow, transactionProtocol, und transactionTimeout.Windows Communication Foundation (WCF) provides three attributes for configuring transactions for a service: transactionFlow, transactionProtocol, and transactionTimeout.

Konfigurieren des transactionFlow-AttributsConfiguring transactionFlow

Die meisten der vordefinierten Bindungen, WCF bietet enthalten, die transactionFlow und transactionProtocol Attribute, sodass Sie die Bindung für eingehende Transaktionen für einen bestimmten Endpunkt unter Verwendung einer bestimmten transaktionsflussprotokolls akzeptiert konfigurieren können.Most of the predefined bindings WCF provides contain the transactionFlow and transactionProtocol attributes, so that you can configure the binding to accept incoming transactions for a specific endpoint using a specific transaction flow protocol. Darüber hinaus können Sie mit dem transactionFlow-Element und dessen transactionProtocol-Attribut Ihre eigene Bindung erstellen.In addition, you can use the transactionFlow element and its transactionProtocol attribute to build your own custom binding. Weitere Informationen zum Festlegen von Konfigurationselementen finden Sie unter <Bindung > und WCF-Konfigurationsschema.For more information about setting the configuration elements, see <binding> and WCF Configuration Schema.

Das transactionFlow-Attribut gibt an, ob der Transaktionsfluss für Dienstendpunkte aktiviert ist, die die Bindung verwenden.The transactionFlow attribute specifies whether transaction flow is enabled for service endpoints that use the binding.

Konfigurieren des transactionProtocol-AttributsConfiguring transactionProtocol

Das transactionProtocol-Attribut gibt das Transaktionsprotokoll an, das für die Dienstendpunkte verwendet werden soll, die die Bindung verwenden.The transactionProtocol attribute specifies the transaction protocol to use with service endpoints that use the binding.

Nachstehend finden Sie ein Beispiel für einen Konfigurationsabschnitt, mit dem die angegebene Bindung so konfiguriert wird, dass der Transaktionsfluss unterstützt und das WS-AtomicTransaction-Protokoll verwendet wird.The following is an example of a configuration section that configures the specified binding to support transaction flow, as well as a use the WS-AtomicTransaction protocol.

<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>  

Konfigurieren des transactionTimeout-AttributsConfiguring transactionTimeout

Sie können konfigurieren, die transactionTimeout -Attribut für den WCF-Dienst in der behavior Element der Konfigurationsdatei.You can configure the transactionTimeout attribute for your WCF service in the behavior element of the configuration file. Im folgenden Codebeispiel wird die hierfür erforderliche Vorgehensweise veranschaulicht:The following code demonstrates how to do this.

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

Das transactionTimeout-Attribut legt den Zeitraum fest, innerhalb dessen eine neue, für den Dienst erstellte Transaktion abgeschlossen sein muss.The transactionTimeout attribute specifies the time period within which a new transaction created at the service must complete. Dieses Attribut wird als TransactionScope-Timeout für alle Vorgänge verwendet, die zu einer neuen Transaktion führen. Wird OperationBehaviorAttribute angewendet, wird die TransactionScopeRequired-Eigenschaft auf true gesetzt.It is used as the TransactionScope time-out for any operation that establishes a new transaction, and if OperationBehaviorAttribute is applied, the TransactionScopeRequired property is set to true.

Der Timeout gibt den Zeitraum von der Erstellung der Transaktion bis zum Abschluss von Phase 1 im Zweiphasencommit-Protokoll an.The time-out specifies the duration of time from the creation of the transaction to the completion of phase 1 in the two-phase commit protocol.

Wenn dieses Attribut in einem service-Konfigurationsabschnitt festgelegt wird, sollten Sie mindestens eine Methode des zugehörigen Diensts mit OperationBehaviorAttribute, in dem die TransactionScopeRequired-Eigenschaft auf true gesetzt ist, anwenden.If this attribute is set within a service configuration section, you should apply at least one method of the corresponding service with OperationBehaviorAttribute, in which the TransactionScopeRequired property is set to true.

Beachten Sie, dass als Timeoutwert der kleinere Wert von dieser transactionTimeout-Konfigurationseinstellung und allen TransactionTimeout-Eigenschaften verwendet wird.Note that the time-out value used is the smaller value between this transactionTimeout configuration setting and any TransactionTimeout property.

Siehe auchSee Also

<binding><binding>
WCF Configuration Schema (Schema zur WCF-Konfiguration)WCF Configuration Schema