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
Instale o ASP.NET 4.0 usando o seguinte comando.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
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.
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 noclientBaseAddress
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>