ServiceModel İşlem Yapılandırması
Windows Communication Foundation (WCF), bir hizmet için işlemleri yapılandırmak için üç öznitelik sağlar: transactionFlow
, transactionProtocol
ve 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 true
ayarlanı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ığı TransactionScopeRequiredtrue
ile 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.