Compartilhar via


Sessão confiável de WS

O exemplo wsReliableSession demonstra o uso de sessões confiáveis. Sessões confiáveis fornecem suporte para mensagens e sessões confiáveis. O sistema de mensagens confiável tenta novamente a comunicação em caso de falha e permite que as garantias de entrega sejam especificadas, como a chegada de mensagens em ordem. As sessões mantêm o estado dos clientes entre as chamadas. O exemplo implementa sessões para manter o estado do cliente e especifica garantias de entrega em ordem.

Este exemplo se baseia na Introdução que implementa um serviço de calculadora. Os recursos de sessão confiáveis são ativados e configurados nos arquivos de configuração do aplicativo para o cliente e o serviço.

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

Observação

O procedimento de instalação e as instruções de build desse exemplo estão no final deste tópico.

O exemplo usa wsHttpBinding. A associação é especificada nos arquivos de configuração para o cliente e o serviço. O tipo de associação é especificado no atributo binding do elemento do ponto de extremidade, conforme mostrado na configuração de exemplo a seguir.

<endpoint address=""
          binding="wsHttpBinding"
          bindingConfiguration="Binding1"
          contract="Microsoft.ServiceModel.Samples.ICalculator" />

O ponto de extremidade contém um atributo bindingConfiguration que faz referência a uma configuração de associação chamada "Binding1". A configuração de associação permite sessões confiáveis definindo o atributo enabled de <reliableSession> como true. As garantias de entrega para sessões ordenadas são controladas definindo o atributo ordenado como true ou false. O padrão é true.

<bindings>
    <wsHttpBinding>
        <binding name="Binding1">
            <reliableSession enabled="true" />
        </binding>
    </wsHttpBinding>
</bindings>

A classe de implementação de serviço implementa a instância PerSession para manter uma instância de classe separada para cada cliente, conforme mostrado no código de exemplo a seguir.

[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)] public class CalculatorService : ICalculator
{
    ...
}

Quando você executa a amostra, as solicitações de operação e as respostas são exibidas na janela do console do cliente. Pressione ENTER na janela do cliente para desligar o cliente.

Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714

Press <ENTER> to terminate client.

Para configurar, compilar, e executar o exemplo

  1. Instale o ASP.NET 4.0 usando o seguinte comando.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Verifique se você executou o Procedimento de instalação única para os exemplos do Windows Communication Foundation.

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

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