Partager via


Limitation

L'exemple limitation illustre l'utilisation des contrôles de limitation. Les contrôles de limitation placent des limites sur le nombre d’appels simultanés, d’instances ou de sessions pour empêcher la surconsommation des ressources. La fonctionnalité de limitation est spécifiée dans les paramètres du fichier de configuration du service. Cet exemple est basé sur le guide de démarrage qui implémente un service de calculatrice.

Dans cet exemple, le client est une application console (.exe) et le service est hébergé par Internet Information Services (IIS).

Remarque

La procédure d’installation et les instructions de génération de cet exemple se trouvent à la fin de cette rubrique.

Le fichier de configuration de service spécifie des contrôles de limitation dans un <serviceThrottling>, comme indiqué dans l’exemple de configuration suivant.

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

Comme configuré, le service limite le nombre maximal d’appels simultanés à 2 et le nombre maximal d’instances simultanées à 10.

Afin d'illustrer la limitation, nous définissons une durée de veille sur les méthodes du service comme suit :

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

Lorsque vous exécutez l’exemple, les demandes et réponses de l’opération s’affichent dans la fenêtre de la console cliente. Les méthodes Add et Subtract sont exécutées concurremment et les méthodes Multiplie et Divide sont exécutées concurremment, prouvant qu'il n'est pas possible d'exécuter plus de 2 méthodes en même temps, démontrant ainsi la régulation.

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

Pour configurer, générer et exécuter l’exemple

  1. Assurez-vous d’avoir effectué la Procédure d’installation unique pour les exemples Windows Communication Foundation.

  2. Pour générer l’édition C# ou Visual Basic .NET de la solution, conformez-vous aux instructions figurant dans Building the Windows Communication Foundation Samples.

  3. Pour exécuter l’exemple dans une configuration à un ou plusieurs ordinateurs, conformez-vous aux instructions figurant dans la rubrique Exécution des exemples Windows Communication Foundation.