Aracılığıyla paylaş


ServiceModel İşlem Yapılandırması

Windows Communication Foundation (WCF), bir hizmet için işlemleri yapılandırmak için üç öznitelik sağlar: transactionFlow, transactionProtocolve transactionTimeout.

transactionFlow'un yapılandırılması

WCF'nin sağladığı önceden tanımlanmış bağlamaların çoğu ve transactionProtocol özniteliklerini içerirtransactionFlow, böylece bağlamayı belirli bir işlem akışı protokolü kullanarak belirli bir uç nokta için gelen işlemleri kabul etmek üzere yapılandırabilirsiniz. Ayrıca, kendi özel bağlamanızı oluşturmak için öğesini ve transactionProtocol özniteliğini kullanabilirsiniztransactionFlow. Yapılandırma öğelerini ayarlama hakkında daha fazla bilgi için bkz <. bağlama> ve WCF Yapılandırma Şeması.

özniteliği, transactionFlow bağlamayı kullanan hizmet uç noktaları için işlem akışının etkinleştirilip etkinleştirilmediğini belirtir.

transactionProtocol yapılandırma

özniteliği, transactionProtocol bağlamayı kullanan hizmet uç noktalarıyla kullanılacak işlem protokollerini belirtir.

Aşağıda, belirtilen bağlamayı işlem akışını destekleyecek şekilde yapılandıran ve WS-AtomicTransaction protokolünün kullanıldığı bir yapılandırma bölümü örneği verilmiştir.

<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'un yapılandırılması

WCF hizmetinizin özniteliğini yapılandırma dosyasının behavior öğesinde yapılandırabilirsiniztransactionTimeout. Aşağıdaki kod bunun nasıl yapılacağını gösterir.

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

özniteliği, transactionTimeout hizmette oluşturulan yeni bir işlemin tamamlanması gereken süreyi belirtir. Yeni bir işlem oluşturan herhangi bir işlem için zaman aşımı olarak TransactionScope kullanılır ve uygulanırsa OperationBehaviorAttribute özelliği TransactionScopeRequired olarak trueayarlanır.

Zaman aşımı, işlemin oluşturulmasından iki aşamalı işleme protokolündeki 1. aşamanın tamamlanmasına kadar olan süreyi belirtir.

Bu öznitelik bir service yapılandırma bölümünde ayarlanırsa, özelliği olarak ayarlandığı TransactionScopeRequiredtrueile OperationBehaviorAttributeilgili hizmetin en az bir yöntemini uygulamanız gerekir.

Kullanılan zaman aşımı değerinin bu transactionTimeout yapılandırma ayarı ile herhangi bir TransactionTimeout özellik arasındaki daha küçük bir değer olduğunu unutmayın.

Ayrıca bkz.