Partilhar via


WS Http Duplo

O exemplo DualHttp demonstra como configurar a WSDualHttpBinding ligação. Este exemplo consiste em um programa de console do cliente (.exe) e uma biblioteca de serviços (.dll) hospedada pelo IIS (Serviços de Informações da Internet). O serviço implementa um contrato duplex. O contrato é definido pela ICalculatorDuplex interface, que expõe operações matemáticas (Adicionar, Subtrair, Multiplicar e Dividir). Neste exemplo, a ICalculatorDuplex interface permite que o cliente execute operações matemáticas, calculando um resultado de execução ao longo da sessão. Independentemente, o serviço retorna resultados na ICalculatorDuplexCallback interface. Um contrato duplex requer uma sessão, porque um contexto deve ser estabelecido para correlacionar o conjunto de mensagens que estão sendo enviadas entre o cliente e o serviço. A WSDualHttpBinding ligação suporta comunicação duplex.

Nota

O procedimento de configuração e as instruções de compilação para este exemplo estão localizados no final deste tópico.

Para configurar um ponto de extremidade de serviço com o WSDualHttpBinding, especifique a associação na configuração do ponto de extremidade, conforme mostrado.

<endpoint address=""
         binding="wsDualHttpBinding"
         contract="Microsoft.ServiceModel.Samples.ICalculatorDuplex" />

No cliente, você deve configurar um endereço que o servidor pode usar para se conectar ao cliente, conforme mostrado na configuração de exemplo a seguir.

<system.serviceModel>
  <client>
    <endpoint address=
         "http://localhost/servicemodelsamples/service.svc"
         binding="wsDualHttpBinding"
         bindingConfiguration="Binding1"
         contract="Microsoft.ServiceModel.Samples.ICalculatorDuplex" />
  </client>

  <bindings>
    <!-- Configure a WSDualHttpBinding that supports duplex -->
    <!-- communication. -->
    <wsDualHttpBinding>
      <binding name="Binding1"
               clientBaseAddress="http://localhost:8000/myClient/"
               useDefaultWebProxy="true"
               bypassProxyOnLocal="false">
      </binding>
    </wsDualHttpBinding>
  </bindings>
</system.serviceModel>

Quando você executa o exemplo, 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.

Press <ENTER> to terminate client once the output is displayed.

Result(100)
Result(50)
Result(882.5)
Result(441.25)
Equation(0 + 100 - 50 * 17.65 / 2 = 441.25)

Ao executar o exemplo, você vê as mensagens retornadas ao cliente na interface de retorno de chamada enviada do serviço. Cada resultado intermediário é exibido, seguido por toda a equação após a conclusão de todas as operações. Pressione ENTER para desligar o cliente.

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. Certifique-se de ter executado o procedimento de instalação única para os exemplos do Windows Communication Foundation.

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

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

    Importante

    Ao executar o cliente em uma configuração entre máquinas, certifique-se de substituir localhost no address atributo do ponto de< extremidade> do elemento client>< e no clientBaseAddress atributo do elemento binding <> do< elemento wsDualHttpBinding> pelo nome da máquina apropriada, conforme mostrado:

    <client>
        <endpoint name = ""
          address=
         "http://service_machine_name/servicemodelsamples/service.svc"
        />
    </client>
    ...
    <wsDualHttpBinding>
        <binding name="DuplexBinding" clientBaseAddress=
            "http://client_machine_name:8000/myClient/">
        </binding>
    </wsDualHttpBinding>