Begränsning
Begränsningsexemplet visar användningen av begränsningskontroller. Begränsningskontroller begränsar antalet samtidiga anrop, instanser eller sessioner för att förhindra överförbrukning av resurser. Begränsningsbeteende anges i filinställningarna för tjänstkonfiguration. Det här exemplet baseras på komma igång som implementerar en kalkylatortjänst.
I det här exemplet är klienten ett konsolprogram (.exe) och tjänsten hanteras av Internet Information Services (IIS).
Kommentar
Installationsproceduren och bygginstruktionerna för det här exemplet finns i slutet av det här avsnittet.
Tjänstkonfigurationsfilen anger begränsningskontroller i en <tjänstRottling>, enligt följande exempelkonfiguration.
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceDebug includeExceptionDetailInFaults="False" />
<serviceMetadata httpGetEnabled="True"/>
<!-- Specify throttling behavior -->
<serviceThrottling maxConcurrentCalls="2"
maxConcurrentInstances="10"/>
</behavior>
</serviceBehaviors>
</behaviors>
Som konfigurerat begränsar tjänsten de maximala samtidiga anropen till 2 och det maximala antalet samtidiga instanser till 10.
För att demonstrera begränsning definierar vi en vilotid på tjänstmetoderna enligt följande:
public double Add(double n1, double n2)
{
System.Threading.Thread.Sleep(2000);
return n1 + n2;
}
När du kör exemplet visas åtgärdsbegäranden och svar i klientkonsolfönstret. Metoderna Lägg till och subtrahera körs samtidigt och metoderna Multiplicera och Dividera körs samtidigt som bevisar att inte fler än två metoder kan köras samtidigt, vilket visar begränsning.
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 . . .
Så här konfigurerar du, skapar och kör exemplet
Kontrollera att du har utfört engångsinstallationsproceduren för Windows Communication Foundation-exempel.
Om du vill skapa C# eller Visual Basic .NET-versionen av lösningen följer du anvisningarna i Skapa Windows Communication Foundation-exempel.
Om du vill köra exemplet i en konfiguration med en eller flera datorer följer du anvisningarna i Köra Windows Communication Foundation-exempel.