Visão geral das ligações do Windows Communication Foundation
Associações são objetos usados para especificar os detalhes de comunicação necessários para se conectar ao ponto de extremidade de um serviço WCF (Windows Communication Foundation). Cada ponto de extremidade em um serviço WCF requer uma associação para ser bem especificado. Este tópico descreve os tipos de detalhes de comunicação que as associações definem, os elementos de uma ligação, quais ligações são incluídas no WCF e como uma associação pode ser especificada para um ponto de extremidade.
O que uma vinculação define
As informações em uma ligação podem ser muito básicas ou muito complexas. A associação mais básica especifica apenas o protocolo de transporte (como HTTP) que deve ser usado para se conectar ao ponto de extremidade. Mais geralmente, as informações que uma associação contém sobre como se conectar a um ponto de extremidade se enquadram em uma das seguintes categorias:
Protocolos
Determina o mecanismo de segurança que está sendo usado: recurso de mensagens confiável ou configurações de fluxo de contexto de transação.
Encoding (Codificação)
Determina a codificação da mensagem (por exemplo, texto ou binário).
Transportes
Determina o protocolo de transporte subjacente a ser usado (por exemplo, TCP ou HTTP).
Os elementos de uma vinculação
Uma ligação consiste basicamente em uma pilha ordenada de elementos de ligação, cada um dos quais especifica parte das informações de comunicação necessárias para se conectar a um ponto de extremidade de serviço. As duas camadas mais baixas na pilha são ambas necessárias. Na base da pilha está o elemento de ligação de transporte e logo acima dele está o elemento que contém as especificações de codificação de mensagem. Os elementos de vinculação opcionais que especificam os outros protocolos de comunicação estão em camadas acima desses dois elementos necessários. Para obter mais informações sobre esses elementos de vinculação e sua ordem correta, consulte Ligações personalizadas.
Ligações fornecidas pelo sistema
As informações em uma associação podem ser complexas e algumas configurações podem não ser compatíveis com outras. Por esse motivo, o WCF inclui um conjunto de associações fornecidas pelo sistema. Essas ligações são projetadas para cobrir a maioria dos requisitos do aplicativo. As classes a seguir representam alguns exemplos de associações fornecidas pelo sistema:
BasicHttpBinding: Uma ligação de protocolo HTTP adequada para conexão com serviços Web que esteja em conformidade com a especificação de Perfil Básico WS-I (por exemplo, serviços baseados em serviços Web ASP.NET).
WSHttpBinding: Uma ligação interoperável adequada para conexão a pontos finais que estão em conformidade com os protocolos WS-*.
NetNamedPipeBinding: Usa o .NET Framework para se conectar a outros pontos de extremidade WCF na mesma máquina.
NetMsmqBinding: Usa o .NET Framework para criar conexões de mensagens enfileiradas com outros pontos de extremidade WCF.
NetTcpBinding: Esta ligação oferece um desempenho superior às ligações HTTP e é ideal para utilização numa rede local.
Para obter uma lista completa, com descrições, de todas as associações fornecidas pelo WCF, consulte Ligações fornecidas pelo sistema.
Usando suas próprias ligações
Se nenhuma das associações fornecidas pelo sistema incluídas tiver a combinação correta de recursos que um aplicativo de serviço exige, você poderá criar sua própria associação. Pode fazê-lo de duas formas. Você pode criar uma nova associação a partir de elementos de vinculação pré-existentes usando um CustomBinding objeto ou pode criar uma associação completamente definida pelo usuário derivando da Binding associação. Para obter mais informações sobre como criar sua própria associação usando essas duas abordagens, consulte Ligações personalizadas e Criando ligações definidas pelo usuário.
Usando ligações
O uso de ligações envolve duas etapas básicas:
Selecione ou defina uma ligação. O método mais fácil é escolher uma das ligações fornecidas pelo sistema incluídas no WCF e usá-lo com suas configurações padrão. Você também pode escolher uma vinculação fornecida pelo sistema e redefinir seus valores de propriedade para atender às suas necessidades. Como alternativa, você pode criar uma associação personalizada ou uma associação definida pelo usuário para ter graus mais altos de controle e personalização.
Crie um ponto de extremidade que use a associação selecionada ou definida.
Código e configuração
Você pode definir ligações de duas maneiras: através do código ou através da configuração. Essas duas abordagens não dependem se você está usando uma associação fornecida pelo sistema ou uma associação personalizada. Em geral, o uso de código oferece controle total sobre a definição de uma associação em tempo de design. O uso da configuração, por outro lado, permite que um administrador de sistema ou o usuário de um serviço ou cliente WCF altere os parâmetros de uma associação sem ter que recompilar o aplicativo de serviço. Essa flexibilidade geralmente é desejável porque não há como prever requisitos específicos de máquina nos quais um aplicativo WCF deve ser implantado. Manter as informações de vinculação (e endereçamento) fora do código permite que elas sejam alteradas sem exigir a recompilação ou reimplantação do aplicativo. Observe que as associações definidas no código são criadas após as ligações especificadas na configuração, permitindo que as associações definidas por código substituam quaisquer associações definidas pela configuração.