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
Upewnij się, że wykonano procedurę instalacji jednorazowej dla przykładów programu Windows Communication Foundation.
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).
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.