Freigeben über


Drosselung

Das Drosselungsbeispiel veranschaulicht die Verwendung von Drosselungssteuerungen. Drosselungskontrollen setzen Limits für die Anzahl gleichzeitiger Anrufe, Instanzen oder Sitzungen, um den Überverbrauch von Ressourcen zu verhindern. Das Einschränkungsverhalten wird in Dienstkonfigurations-Dateieinstellungen angegeben. Dieses Beispiel basiert auf dem Abschnitt Erste Schritte, der einen Rechnerdienst implementiert.

In diesem Beispiel ist der Client eine Konsolenanwendung (.exe) und der Dienst wird von Internetinformationsdienste (IIS) gehostet.

Hinweis

Die Einrichtungsverfahren und Build-Anweisungen für dieses Beispiel befinden sich am Ende dieses Themas.

Die Dienstkonfigurationsdatei gibt Drosselungskontrollen in einem <ServiceThrottling> an, wie in der folgenden Beispielkonfiguration dargestellt.

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

Wie konfiguriert, beschränkt der Dienst die maximalen gleichzeitigen Aufrufe auf 2 und die maximale Anzahl gleichzeitiger Instanzen auf 10.

Zum Vorführen der Einschränkung wird in den Dienstmethoden wie folgt eine Ruhezeit definiert:

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

Wenn Sie das Beispiel ausführen, werden die Vorgangsanforderungen und -antworten im Clientkonsolenfenster angezeigt. Die Methoden "Add" und "Subtrahieren" werden gleichzeitig ausgeführt, und die Methoden "Multiplizieren" und "Dividieren" werden gleichzeitig ausgeführt, um zu beweisen, dass nicht mehr als 2 Methoden gleichzeitig ausgeführt werden können, wodurch eine Drosselung veranschaulicht wird.

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

So können Sie das Beispiel einrichten, erstellen und ausführen

  1. Stellen Sie sicher, dass Sie das One-Time Setup-Verfahren für die Windows Communication Foundation-Beispieleausgeführt haben.

  2. Um die C#- oder Visual Basic .NET-Edition der Lösung zu erstellen, befolgen Sie die Anweisungen in Building the Windows Communication Foundation Samples.

  3. Wenn Sie das Beispiel in einer Konfiguration mit einem Computer oder über Computer hinweg ausführen möchten, folgen Sie den Anweisungen unter Durchführen der Windows Communication Foundation-Beispiele.