Configurando 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. As associações consistem em elementos que definem como os canais do WCF (Windows Communication Foundation) são colocados em camadas para fornecer os recursos de comunicação necessários. Uma associação contém três tipos de elementos:
Elementos de associação de canal de protocolo, que determinam a segurança, a confiabilidade, as configurações de fluxo de contexto ou os protocolos definidos pelo usuário a serem usados com mensagens enviadas para o 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.
Elementos de associação de codificação de mensagem, que determinam a codificação de fio a ser usada para mensagens enviadas para o ponto de extremidade, por exemplo, texto/XML, binário ou MTOM (Mecanismo de Otimização de Transmissão de Mensagens).
Este tópico apresenta todas as associações do WCF (Windows Communication Foundation) fornecidas pelo sistema. Se nenhuma dessas associações atender aos requisitos exatos de seu aplicativo, você pode criar uma associação personalizada usando a classe CustomBinding. Para obter mais informações sobre como criar associações personalizadas, confira Associações personalizadas.
Importante
Selecione uma associação que tenha a segurança habilitada. Por padrão, todas as associações, exceto a associação 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
Não 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 a troca da rede esteja protegida por outros meios.
Associações fornecidas pelo sistema
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. |
WS2007HttpBinding | <ws2007HttpBinding> | Uma associação segura e interoperável que dá suporte às versões corretas dos elementos de associação Security, ReliableSession e TransactionFlow. |
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, permitindo às organizações que estão em uma federação autenticar e autorizar usuários com eficiência. |
WS2007FederationHttpBinding | <ws2007FederationHttpBinding> | Uma associação segura e interoperável que deriva de WS2007HttpBinding e dá suporte à segurança federada. |
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. |
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. |
MsmqIntegrationBinding | <msmqIntegrationBinding> | Uma associação adequada para comunicação de computadores entre um aplicativo do WCF e os aplicativos existentes do Enfileiramento de Mensagens (também conhecidos como MSMQ). |
Recursos de associação
A tabela a seguir mostra alguns dos principais recursos de cada uma das associações fornecidas pelo sistema. As associações são listadas na primeira coluna e as informações sobre os recursos são descritas na 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 | Modo de segurança (Padrão) | Session (Padrão) |
Transactions | Duplex |
---|---|---|---|---|---|
BasicHttpBinding | Basic Profile 1.1 | (Nenhum), Transporte, Mensagem, Misto | Nenhum, (Nenhum) | (Nenhuma) | n/d |
WSHttpBinding | WS | (Nenhum), Transporte, Mensagem, Misto | (Nenhum), Transporte, Sessão Confiável | (Nenhum), Sim | n/a |
WS2007HttpBinding | WS-Security, WS-Trust, WS-SecureConversation, WS-SecurityPolicy | (Nenhum), Transporte, Mensagem, Misto | (Nenhum), Transporte, Sessão Confiável | (Nenhum), Sim | n/d |
WSDualHttpBinding | WS | Nenhum (Mensagem) | (Sessão confiável) | (Nenhum), Sim | Sim |
WSFederationHttpBinding | O certificado do provedor de identidade do Web Services Federation | Nenhum, (Mensagem), Misto | (Nenhum), Sessão confiável | (Nenhum), Sim | No |
WS2007FederationHttpBinding | O certificado do provedor de identidade do Web Services Federation | Nenhum, (Mensagem), Misto | (Nenhum), Sessão confiável | (Nenhum), Sim | No |
NetTcpBinding | .NET | Nenhum, (Transporte), Mensagem, Mixed |
Sessão Confiável, (Transporte) | (Nenhum), Sim | Sim |
NetNamedPipeBinding | .NET | Nenhum, (Transporte) |
Nenhum, (Transporte) | (Nenhum), Sim | Sim |
NetMsmqBinding | .NET | nenhum, Mensagem, (Transporte), Ambos | (Nenhuma) | (Nenhum), Sim | No |
NetPeerTcpBinding | Par | Nenhum, Mensagem, (Transporte), Misto | (Nenhuma) | (Nenhuma) | Sim |
WebHttpBinding | .Net | Nenhum, Transporte, TransportCredentialOnly | (Nenhuma) | (Nenhuma) | n/a |
MsmqIntegrationBinding | MSMQ | Nenhum, (Transporte) | (Nenhuma) | (Nenhum), Sim | n/a |
A tabela a seguir explica as funcionalidades encontradas 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: esse modo de segurança é conhecido como TransportWithMessageCredentials . Ele lida com credenciais no nível da mensagem, e os requisitos de integridade e confidencialidade são atendidos pela camada de transporte.- Ambos: o nível da mensagem e a segurança no nível do transporte são usados. Essa capacidade é exclusiva do NetMsmqBinding. |
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. |
Streaming | Especifica se há suporte para o streaming de mensagens. |