Varsayılan Hizmet Davranışı

Varsayılan örnek, hizmet davranışı ayarlarının nasıl yapılandırılabildiğini gösterir. Örnek, hizmet sözleşmesini uygulayan Başlarken'iICalculator temel alır. Bu örnek, ve OperationBehaviorAttribute özniteliklerini kullanarak ServiceBehaviorAttribute hizmet davranışlarını ve işlem davranışlarını açıkça tanımlar. Yapılandırma dosyalarında veya kodda (bu örnekte gösterildiği gibi) davranışları kesin olarak yapılandırabilirsiniz.

Bu örnekte istemci bir konsol uygulamasıdır (.exe) ve hizmet Internet Information Services (IIS) tarafından barındırılır.

Not

Bu örnek için kurulum yordamı ve derleme yönergeleri bu konunun sonunda yer alır.

Hizmet sınıfı, aşağıdaki kod örneğinde gösterildiği gibi ve OperationBehaviorAttribute ile ServiceBehaviorAttribute davranışları belirtir. Belirtilen tüm değerler varsayılan değerlerdir.

[ServiceBehavior(
    AutomaticSessionShutdown=true,
    ConcurrencyMode=ConcurrencyMode.Single,
    InstanceContextMode=InstanceContextMode.PerSession,
    IncludeExceptionDetailInFaults=false,
    UseSynchronizationContext=true,
    ValidateMustUnderstand=true)]
public class CalculatorService : ICalculator
{
    [OperationBehavior(
        TransactionAutoComplete=true,
        TransactionScopeRequired=false,
        Impersonation=ImpersonationOption.NotAllowed)]
    public double Add(double n1, double n2)
    {
        System.Threading.Thread.Sleep(1600);
        return n1 + n2;
    }
    ...
}

Hizmet davranışları özniteliğiyle ServiceBehaviorAttribute belirtilir. Aşağıdaki tabloda bu davranışlardan bazıları açıklanmaktadır.

Hizmet davranışı Açıklama
AutomaticSessionShutdown İstemcinin isteği üzerine oturumu otomatik olarak kapatır.
ConcurrencyMode Her hizmet örneği için eşzamanlılık modunu belirtir.
InstanceContextMode Örnek bağlam modunu belirtir.
UseSynchronizationContext Ayarlanmışsa sağlanan eşitleme bağlamını kullanıp kullanmayacağını belirler. Windows Forms uygulamalarında kullanılıp kullanılmayacağını WindowsFormsSynchronizationContext denetlemek istediğinizde bunu kullanın.
IncludeExceptionDetailInFaults Genel işlenmeyen yürütme özel durumlarının bir'e Fault<string> dönüştürüleceğini ve hata iletisi olarak gönderilip gönderilmeyeceğini belirler.
TransactionIsolationLevel İşlemler için yalıtım düzeyini belirtir.
ValidateMustUnderstand Beklenmeyen ileti üst bilgilerinin hata koşuluna neden olup olmadığını belirler.

İşlem davranışları özniteliği kullanılarak OperationBehaviorAttribute belirtilir. Aşağıdaki tabloda bu davranışlardan bazıları açıklanmaktadır.

İşlem Davranışı Açıklama
TransactionAutoComplete Hizmet işlemi tamamlama işleminin geçerli işlemi işleyip işlemediğini belirler.
TransactionScopeRequired Hizmet işleminin istemci akışlı bir işlemde listelenip listelenmediğini belirler.
Impersonation Hizmet işleminin çağıranın kimliğine bürünip bürünmeyeceğini belirler.
ReleaseInstanceMode Hizmet örneklerinin hizmet işlemi çağrısının başında mı yoksa sonunda mı geri dönüştürüleceğini belirler.

Örneği çalıştırdığınızda, işlem istekleri ve yanıtları istemci konsolu penceresinde görüntülenir. Çağrılar arasındaki gecikme, hizmet işlemlerinde yapılan çağrıların System.Threading.Thread.Sleep() sonucudur. Diğer davranış örnekleri bu davranışları daha ayrıntılı olarak açıklar. İstemciyi kapatmak için istemci penceresinde ENTER tuşuna basın.

Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714

Press <ENTER> to terminate client.

Örneği ayarlamak, derlemek ve çalıştırmak için

  1. Windows Communication Foundation Örnekleri için Tek Seferlik Kurulum Yordamı'nı gerçekleştirdiğinizden emin olun.

  2. Çözümün C# veya Visual Basic .NET sürümünü oluşturmak için Windows Communication Foundation Örnekleri Oluşturma başlığındaki yönergeleri izleyin.

  3. Örneği tek veya makineler arası bir yapılandırmada çalıştırmak için Windows Communication Foundation Örneklerini Çalıştırma başlığındaki yönergeleri izleyin.