Limitação
O exemplo de limitação demonstra o uso de controles de limitação. Os controles de limitação impõem limites ao número de chamadas, instâncias ou sessões simultâneas para evitar o consumo excessivo de recursos. O comportamento de limitação é especificado nas definições do arquivo de configuração do serviço. Este exemplo é baseado na Introdução que implementa um serviço de calculadora.
Neste exemplo, o cliente é um aplicativo de console (.exe) e o serviço é hospedado pelo IIS (Serviços de Informações da Internet).
Nota
O procedimento de configuração e as instruções de compilação para este exemplo estão localizados 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 a 2 e o número máximo de instâncias simultâneas a 10.
Para demonstrar a limitação, definimos um tempo de suspensão nos métodos de serviço da seguinte forma:
public double Add(double n1, double n2)
{
System.Threading.Thread.Sleep(2000);
return n1 + n2;
}
Quando você executa o exemplo, as solicitações de operação e as respostas são exibidas na janela do console do cliente. Os métodos Add e Subtract são executados simultaneamente e os métodos Multiply e Divide são executados simultaneamente, provando que não mais de 2 métodos podem ser executados simultaneamente, demonstrando assim 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
Certifique-se de ter executado o procedimento de instalação única para os exemplos do Windows Communication Foundation.
Para criar a edição C# ou Visual Basic .NET da solução, siga as instruções em Criando os exemplos do Windows Communication Foundation.
Para executar o exemplo em uma configuração de máquina única ou cruzada, siga as instruções em Executando os exemplos do Windows Communication Foundation.