Compartir a través de


Limitaciones

En el ejemplo De limitación se muestra el uso de controles de limitación. Los controles de limitación colocan límites en el número de llamadas simultáneas, instancias o sesiones para evitar el exceso de consumo de recursos. El comportamiento de limitación se especifica en la configuración del archivo de configuración del servicio. Este ejemplo se basa en la Guía de inicio que implementa un servicio de calculadora.

En este ejemplo, el cliente es una aplicación de consola (.exe) y el servicio se hospeda en Internet Information Services (IIS).

Nota:

El procedimiento de instalación y las instrucciones de compilación de este ejemplo se encuentran al final de este tema.

El archivo de configuración del servicio especifica controles de limitación en un <serviceThrottling>, como se muestra en la siguiente configuración de ejemplo.

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

Como se ha configurado, el servicio limita el número máximo de llamadas simultáneas a 2 y el número máximo de instancias simultáneas a 10.

Para demostrar la limitación, definimos un tiempo de suspensión en los métodos de servicio como se indica a continuación:

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

Al ejecutar el ejemplo, las solicitudes de operación y las respuestas se muestran en la ventana de la consola del cliente. Los métodos Add y Rest se ejecutan simultáneamente y los métodos Multiplicar y Dividir se ejecutan simultáneamente, lo que demuestra que no se pueden ejecutar más de 2 métodos simultáneamente, lo que demuestra la limitación.

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

Para configurar, compilar y ejecutar el ejemplo

  1. Asegúrese de que ha realizado el procedimiento de instalación única para los ejemplos de Windows Communication Foundation.

  2. Para compilar el código C# o Visual Basic .NET Edition de la solución, siga las instrucciones de Building the Windows Communication Foundation Samples.

  3. Para ejecutar el ejemplo en una configuración de una máquina única o entre máquinas, siga las instrucciones de Ejecución de los ejemplos de Windows Communication Foundation.