Udostępnij za pośrednictwem


Ograniczanie przepływności

W przykładzie Ograniczanie przepływności pokazano użycie kontrolek ograniczania przepustowości. Kontrolki ograniczania ograniczają liczbę współbieżnych wywołań, wystąpień lub sesji, aby zapobiec nadmiernemu zużyciu zasobów. Zachowanie ograniczania przepustowości jest określone w ustawieniach pliku konfiguracji usługi. Ten przykład jest oparty na wprowadzenie , który implementuje usługę kalkulatora.

W tym przykładzie klient jest aplikacją konsolową (.exe), a usługa jest hostowana przez usługi Internet Information Services (IIS).

Uwaga

Procedura instalacji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.

Plik konfiguracji usługi określa kontrolki <ograniczania w usłudzeThrottling>, jak pokazano w poniższej przykładowej konfiguracji.

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

Zgodnie z konfiguracją usługa ogranicza maksymalną liczbę współbieżnych wywołań do 2 i maksymalną liczbę współbieżnych wystąpień do 10.

Aby zademonstrować ograniczanie przepustowości, definiujemy czas uśpienia dla metod usługi w następujący sposób:

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

Po uruchomieniu przykładu żądania operacji i odpowiedzi są wyświetlane w oknie konsoli klienta. Metody Add i Subtract są wykonywane współbieżnie, a metody Multiply i Divide są wykonywane współbieżnie udowadniając, że nie więcej niż 2 metody mogą być wykonywane współbieżnie, co pokazuje ograniczanie przepustowości.

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

Aby skonfigurować, skompilować i uruchomić przykład

  1. Upewnij się, że wykonano procedurę instalacji jednorazowej dla przykładów programu Windows Communication Foundation.

  2. Aby skompilować wersję rozwiązania w języku C# lub Visual Basic .NET, postępuj zgodnie z instrukcjami w temacie Building the Windows Communication Foundation Samples (Tworzenie przykładów programu Windows Communication Foundation).

  3. Aby uruchomić przykład w konfiguracji pojedynczej lub między maszynami, postępuj zgodnie z instrukcjami w temacie Uruchamianie przykładów programu Windows Communication Foundation.