Compartilhar via


Limitação

O exemplo de limitação demonstra o uso de controles de limitação. Os controles de limitação colocam limites no número de chamadas simultâneas, instâncias ou sessões para evitar a sobrecarga de consumo de recursos. O comportamento de limitação é especificado nas configurações do arquivo de configuração de serviço. Este exemplo se baseia na Introdução que implementa um serviço de calculadora.

Nesta amostra, o cliente é um aplicativo de console (.exe) e o serviço é hospedado pelos Serviços de Informações da Internet (IIS).

Observação

O procedimento de instalação e as instruções de compilação dessa amostra estão no final deste tópico.

O arquivo de configuração de serviço especifica controles de limitação em um <serviceThrottling>, conforme mostrado na configuração de exemplo a seguir.

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

Conforme configurado, o serviço limita o máximo de chamadas simultâneas para 2, e o número máximo de instâncias simultâneas para 10.

Para demonstrar a limitação, definimos um tempo de suspensão nos métodos de serviço da seguinte maneira:

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

Quando você executa a amostra, as solicitações de operação e as respostas são exibidas na janela do console do cliente. Os métodos Adicionar e Subtrair são executados simultaneamente e os métodos Multiplicar e Dividir são executados simultaneamente, provando que não mais de 2 métodos podem ser executados simultaneamente, demonstrando a limitação.

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, e executar o exemplo

  1. Verifique se você executou o Procedimento de instalação única para os exemplos do Windows Communication Foundation.

  2. Para compilar a edição .NET do C# ou do Visual Basic da solução, siga as instruções contidas em Como Compilar as Amostras do Windows Communication Foundation.

  3. Para executar a amostra em uma configuração de computador único ou entre computadores, siga as instruções contidas em Como executar as amostras do Windows Communication Foundation.