Dela via


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

  1. Kontrollera att du har utfört engångsinstallationsproceduren för Windows Communication Foundation-exempel.

  2. Om du vill skapa C# eller Visual Basic .NET-versionen av lösningen följer du anvisningarna i Skapa Windows Communication Foundation-exempel.

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