Associações fornecidas pelo sistema
As associações especificam o mecanismo de comunicação a ser usado ao se comunicar com um ponto de extremidade e indicam como se conectar a um ponto de extremidade. Uma associação contém os seguintes elementos:
A pilha do protocolo determina a segurança, a confiabilidade e as configurações de fluxo de contexto a serem usadas para as mensagens que são enviadas ao ponto de extremidade.
O transporte determina o protocolo de transporte subjacente a ser usado ao enviar mensagens para o ponto de extremidade, por exemplo, TCP ou HTTP.
A codificação determina a codificação de transmissão a ser usada para as mensagens que são enviadas para o ponto de extremidade. Por exemplo, texto/XML, binário ou MTOM (Mecanismo de Otimização de Transmissão de Mensagem).
Este artigo apresenta todas as associações do WCF (Windows Communication Foundation) fornecidas pelo sistema. Se nenhuma dessas associações atender aos critérios exatos de seu aplicativo, crie uma associação personalizada. Para obter mais informações sobre como criar associações personalizadas, confira Associações personalizadas.
Uma associação segura e interoperável que dá suporte ao protocolo WS-Federation permite às organizações que estão em uma federação autenticar e autorizar usuários com eficiência.
Importante
Sempre selecione uma associação que inclua a segurança. Por padrão, todas as associações, exceto o elemento <basicHttpBinding>>, têm a segurança habilitada. Se você não selecionar uma associação segura ou desabilitar a segurança, proteja seus dados de alguma outra forma, como armazená-los em um data center protegido ou em uma rede isolada.
Importante
Nunca use contratos duplex com associações que não dão suporte à segurança ou que têm a segurança desabilitada, a menos que você proteja os dados por outros meios.
As seguintes associações são fornecidas com o WCF:
Associação | Elemento de configuração | Descrição |
---|---|---|
BasicHttpBinding | <basicHttpBinding> | Uma associação adequada para comunicação com serviços Web em conformidade com o WS-Basic Profile, por exemplo, serviços baseados em serviços Web do ASP.NET (ASMX). Essa associação usa HTTP como o transporte e texto/XML como a codificação de mensagem padrão. |
WSHttpBinding | <wsHttpBinding> | Uma associação segura e interoperável que é adequada para contratos de serviço não duplex. |
WSDualHttpBinding | <wsDualHttpBinding> | Uma associação segura e interoperável que é adequada para contratos de serviços duplex ou para comunicação por intermediários SOAP. |
WSFederationHttpBinding | <wsFederationHttpBinding> | Uma associação segura e interoperável que dá suporte ao protocolo WS-Federation, que permite às organizações que estão em uma federação autenticar e autorizar usuários com eficiência. |
NetHttpBinding | <netHttpBinding> | Uma associação criada para consumir serviços HTTP ou WebSocket que usa a codificação binária por padrão. |
NetHttpsBinding | <netHttpsBinding> | Uma associação segura criada para consumir serviços HTTP ou WebSocket que usa a codificação binária por padrão. |
NetTcpBinding | <netTcpBinding> | Uma associação segura e otimizada, adequada para comunicação de computadores entre aplicativos do WCF. |
NetNamedPipeBinding | <netNamedPipeBinding> | Uma associação segura, confiável e otimizada, que é adequada para comunicação no computador entre aplicativos do WCF. |
NetMsmqBinding | <netMsmqBinding> | Uma associação na fila que é adequada para comunicação de computadores entre aplicativos do WCF. |
NetPeerTcpBinding | <netPeerTcpBinding> | Uma associação que permite uma comunicação segura entre vários computadores. |
MsmqIntegrationBinding | <msmqIntegrationBinding> | Uma associação adequada para comunicação de computadores entre um aplicativo do WCF e os aplicativos existentes do Enfileiramento de Mensagens. |
BasicHttpContextBinding | <basicHttpContextBinding> | Uma associação adequada para comunicação com os serviços Web em conformidade com o WS-Basic Profile, que permite o uso de cookies HTTP para a troca de contexto. |
NetTcpContextBinding | <netTcpContextBinding> | Uma associação segura e otimizada, adequada para comunicação de computadores entre aplicativos do WCF que permite o uso de cabeçalhos SOAP para a troca de contexto. |
WebHttpBinding | <webHttpBinding> | Uma associação usada para configurar pontos de extremidade para serviços Web WCF expostos por meio de solicitações HTTP, em vez de mensagens SOAP. |
WSHttpContextBinding | <wsHttpContextBinding> | Uma associação segura e interoperável, adequada para contratos de serviço não duplex, que permite o uso de cabeçalhos SOAP para a troca de contexto. |
UdpBinding | <udpBinding> | Uma associação a ser usada ao enviar uma intermitência de mensagens simples para um grande número de clientes simultaneamente. |
A tabela a seguir mostra as funcionalidades de cada uma das associações fornecidas pelo sistema. As associações encontram-se nas colunas da tabela; as funcionalidades são listadas nas linhas e descritas em uma segunda tabela. A tabela a seguir fornece um código para as abreviações de associação usadas. Para escolher uma associação, determine qual coluna atende a todas as funcionalidades de linha necessárias.
Associação | Interoperabilidade | Segurança (padrão) | Session (Padrão) |
Transactions | Duplex | Codificação (padrão) | Streaming (Padrão) |
---|---|---|---|---|---|---|---|
BasicHttpBinding | Basic Profile 1.1 | (Nenhum), Transporte, Mensagem, Misto | (Nenhuma) | (Nenhuma) | n/a | Texto, (MTOM) | Sim (em buffer) |
WSHttpBinding | WS | Transporte, (Mensagem), Misto | (Nenhum), Sessão Confiável, Sessão de Segurança | (Nenhum), Sim | n/d | (Texto), MTOM | No |
WSDualHttpBinding | WS | (Mensagem), Nenhum | (Sessão Confiável), Sessão de Segurança | (Nenhum), Sim | Sim | (Texto), MTOM | No |
WSFederationHttpBinding | O certificado do provedor de identidade do Web Services Federation | (Mensagem), Misto, Nenhum | (Nenhum), Sessão Confiável, Sessão de Segurança | (Nenhum), Sim | No | (Texto), MTOM | No |
NetHttpBinding | .NET | (Nenhum), Transporte, Mensagem, TransportWithMessageCredential, TransportCredentialOnly | Veja a observação abaixo | Nenhum | Veja a observação abaixo | (Binário), Texto, MTOM | Sim (em buffer) |
NetHttpsBinding | .NET | (Transporte), TransportWithMessageCredential | Veja a observação abaixo | Nenhum | Veja a observação abaixo | (Binário), Texto, MTOM | Sim (em buffer) |
NetTcpBinding | .NET | (Transporte), Mensagem, Nenhum, Misto | (Transporte), Sessão Confiável, Sessão de Segurança | (Nenhum), Sim | Sim | Binário | Sim (em buffer) |
NetNamedPipeBinding | .NET | (Transporte), Nenhum | Nenhum, (Transporte) | (Nenhum), Sim | Sim | Binário | Sim (em buffer) |
NetMsmqBinding | .NET | Mensagem, (Transporte), Nenhum | (Nenhum), Transporte | Nenhum, (Sim) | No | Binário | No |
NetPeerTcpBinding | Par | (Transporte) | (Nenhuma) | (Nenhuma) | Sim | No | |
MsmqIntegrationBinding | MSMQ | (Transporte) | (Nenhuma) | Nenhum, (Sim) | n/a | n/a | No |
BasicHttpContextBinding | Basic Profile 1.1 | (Nenhum), Transporte, Mensagem, Misto | (Nenhuma) | (Nenhuma) | n/a | Texto, (MTOM) | Sim (em buffer) |
NetTcpContextBinding | .NET | (Transporte), Mensagem, Nenhum, Misto | (Transporte), Sessão Confiável, Sessão de Segurança | (Nenhum), Sim | Sim | Binário | Sim (em buffer) |
WSHttpContextBinding | WS | Transporte, (Mensagem), Misto | (Nenhum), Sessão Confiável, Sessão de Segurança | (Nenhum), Sim | n/a | Texto, (MTOM) | No |
UdpBinding Observação: a interoperabilidade pode ser obtida com a implementação da especificação SOAP-over-UDP padrão implementada por essa associação. |
.NET | (Nenhuma) | (Nenhuma) | (Nenhuma) | n/d | (Texto) | No |
Importante
O NetHttpBinding é uma associação criada para consumir HTTP ou serviços WebSocket e usa a codificação binária por padrão. NetHttpBinding detecta se ela é usada com um contrato de solicitação-resposta ou um contrato duplex e altera seu comportamento para fins de correspondência; ela usa o HTTP para a solicitação-resposta e o WebSockets para o duplex. Esse comportamento pode ser substituído usando a configuração de associação WebSocketTransportUsage: WhenDuplex – esse é o valor padrão e ele se comporta conforme descrito acima. Nunca - isso impede que o WebSockets seja usado. A tentativa de usar um contrato duplex com essa configuração resulta em uma exceção. Sempre - isso força o WebSockets a ser usado mesmo para contratos de solicitação-resposta. NetHttpBinding dá suporte a sessões confiáveis nos modos HTTP e WebSocket. No modo WebSocket as sessões são fornecidas pelo transporte.
A tabela a seguir explica as funcionalidades listadas na tabela anterior.
Recurso | Descrição |
---|---|
Tipo de interoperabilidade | Nomeia a tecnologia ou o protocolo com o qual a associação garante a interoperação. |
Segurança | Especifica como o canal é protegido: - Nenhum: a mensagem SOAP não é protegida e o cliente não é autenticado. - Transporte: os requisitos de segurança são atendidos na camada de transporte. - Mensagem: os requisitos de segurança são atendidos na camada de mensagem. - Misto: as declarações são levadas na mensagem; os requisitos de integridade e confidencialidade são atendidos pela camada de transporte. |
Session | Especifica se essa associação dá suporte a contratos de sessão. |
Transactions | Especifica se as transações estão habilitadas. |
Duplex | Especifica se há suporte para os contratos duplex. Observe que essa funcionalidade exige suporte para Sessões na associação. |
Codificação | Especifica o formato de transmissão da mensagem. Os valores permitidos incluem: - Texto: por exemplo, UTF-8. - Binário - MTOM (Mecanismo de Otimização de Transmissão de Mensagem): um método de codificação eficiente de elementos XML binários no contexto de um envelope SOAP. |
Streaming | Especifica se há suporte para streaming em mensagens de entrada e de saída. Use a propriedade TransferMode na associação para definir o valor. Os valores permitidos incluem:- Buffered: as mensagens de solicitação e resposta são armazenadas em buffer. - Streamed: as mensagens de solicitação e resposta são transmitidas. - StreamedRequest: a mensagem de solicitação é transmitida e a mensagem de resposta é armazenada em buffer. - StreamedResponse: a mensagem de solicitação é armazenada em buffer e a mensagem de resposta é transmitida. |