Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O exemplo transporte demonstra como configurar uma associação personalizada com vários elementos de codificação de mensagens e transporte. Uma associação personalizada é definida por uma lista ordenada de elementos de associação discretos.
Observação
O procedimento de instalação e as instruções de build para este exemplo estão localizados no final deste tópico.
Este exemplo é baseado no auto-host e foi modificado para configurar três pontos de extremidade para dar suporte a transportes HTTP, TCP e NamedPipe com associações personalizadas. A configuração do cliente foi modificada de forma semelhante, e o código do cliente foi alterado para se comunicar com cada um dos três endpoints.
O exemplo demonstra como configurar uma associação personalizada que dá suporte a um transporte específico e codificação de mensagens. Isso é feito configurando um transporte e uma codificação de mensagem para o binding elemento. A ordenação de elementos de associação é importante na definição de uma associação personalizada, pois cada uma representa uma camada na pilha do canal (consulte Associações Personalizadas). Este exemplo configura três associações personalizadas: um transporte HTTP com codificação de texto, um transporte TCP com codificação de texto e um transporte NamedPipe com uma codificação binária.
A configuração de serviço define as associações personalizadas da seguinte maneira:
<bindings>
<customBinding>
<binding name="HttpBinding" >
<textMessageEncoding
messageVersion="Soap12Addressing10"/>
<httpTransport />
</binding>
<binding name="TcpBinding" >
<textMessageEncoding />
<tcpTransport />
</binding>
<binding name="NamedPipeBinding" >
<binaryMessageEncoding />
<namedPipeTransport />
</binding>
</customBinding>
</bindings>
Quando você executa o exemplo, as solicitações de operação e as respostas são exibidas na janela do console do cliente e do serviço. O cliente se comunica com cada um dos três pontos de extremidade, acessando primeiro HTTP, depois TCP e, por fim, NamedPipe. Pressione ENTER em cada janela do console para desligar o serviço e o cliente.
A namedPipeTransport associação não dá suporte a operações de máquina para máquina. Ele é usado apenas para comunicação no mesmo computador. Portanto, ao executar o exemplo em um cenário entre máquinas, comente as seguintes linhas no arquivo de código do cliente:
CalculatorClient client = new CalculatorClient("default");
Console.WriteLine("Communicate with named pipe endpoint.");
// Call operations.
DoCalculations(client);
//Closing the client gracefully closes the connection and cleans up resources
client.Close();
Dim client As New CalculatorClient("default")
Console.WriteLine("Communicate with named pipe endpoint.")
' call operations
DoCalculations(client)
'Closing the client gracefully closes the connection and cleans up resources
client.Close()
Observação
Se você usar Svcutil.exe para regenerar a configuração deste exemplo, modifique o nome do ponto de extremidade na configuração do cliente para corresponder ao código do cliente.
Para configurar, compilar e executar o exemplo
Verifique se você executou o Procedimento de instalação avulsa dos exemplos do Windows Communication Foundation.
Para compilar a edição C#, C++ ou Visual Basic .NET da solução, siga as instruções em Compilando os Exemplos do Windows Communication Foundation.
Para executar o exemplo em uma configuração única ou entre máquinas, siga as instruções em Executando os exemplos do Windows Communication Foundation.