Aracılığıyla paylaş


Hız kısıtlama

Kısıtlama örneği, kısıtlama denetimlerinin kullanımını gösterir. Azaltma denetimleri kaynakların aşırı tüketimini önlemek için eşzamanlı çağrı, örnek veya oturum sayısına sınırlar ekler. Kısıtlama davranışı servis yapılandırma dosyası ayarlarında belirtilir. Bu örnek, hesap makinesi hizmeti uygulayan Getting Started'a dayanmaktadır.

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

Uyarı

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

Hizmet yapılandırma dosyası, aşağıdaki örnek yapılandırmada gösterildiği gibi serviceThrottling<> içindeki kısıtlama denetimlerini belirtir.

<behaviors>
  <serviceBehaviors>
    <behavior name="CalculatorServiceBehavior">
      <serviceDebug includeExceptionDetailInFaults="False" />
      <serviceMetadata httpGetEnabled="True"/>
      <!-- Specify throttling behavior -->
    <serviceThrottling maxConcurrentCalls="2"
                       maxConcurrentInstances="10"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

Yapılandırıldığı gibi, hizmet en fazla eş zamanlı çağrı sayısını 2 ile ve en fazla eşzamanlı örnek sayısını 10 ile sınırlar.

Sınırlamayı göstermek için hizmet yöntemlerinde aşağıdaki gibi bir uyku süresi tanımlarız:

public double Add(double n1, double n2)
{
    System.Threading.Thread.Sleep(2000);
    return n1 + n2;
}

Örneği çalıştırdığınızda, işlem istekleri ve yanıtları istemci konsolu penceresinde görüntülenir. Ekle ve Çıkar yöntemleri eşzamanlı olarak yürütülürken, aynı şekilde Çarpma ve Bölme yöntemleri de eşzamanlı olarak yürütülür. Bu durum, ikiden fazla yöntemin eşzamanlı olarak yürütülemeyeceğini kanıtlayarak kısıtlama özelliğini gösterir.

Press <ENTER> to terminate client.
Add(100,15.99)
Subtract(145,76.54)
Multiply(9,81.25)
Divide(22,7)

Add Result: 115.99
Subtract Result: 68.46
Multiply Result: 731.25
Divide Result: 3.14285714285714

Press any key to continue . . .

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

  1. Windows Communication Foundation Örnekleri içinOne-Time Kurulum Yordamını yaptığınızdan emin olun.

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

  3. Örneği tek bir makine veya makineler arası bir yapılandırmada çalıştırmak için, Windows Communication Foundation örneklerini çalıştırmayönergelerini izleyin.