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
Verifique se você executou o Procedimento de instalação única para os exemplos do Windows Communication Foundation.
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.
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.