Usando associações para configurar serviços e clientes
As associações são objetos que especificam os detalhes de comunicação necessários para se conectar a um ponto de extremidade. Mais especificamente, as associações contêm informações de configuração usadas para criar o runtime do cliente ou do serviço definindo as especificidades de transportes, formatos de fio (codificação de mensagens) e protocolos a serem usados para o respectivo ponto de extremidade ou canal cliente. Para criar um serviço WCF (Windows Communication Foundation) funcional, cada ponto de extremidade no serviço requer uma associação. Este tópico explica o que são associações, como elas são definidas e como uma associação específica é especificada para um ponto de extremidade.
O que uma associação define
As informações em uma associaçã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. Em geral, as informações que uma associação contém sobre como se conectar a um ponto de extremidade se enquadram em uma das categorias na tabela a seguir.
Protocolos
Determina o mecanismo de segurança que está sendo usado, a funcionalidade de mensagens confiável ou as configurações de fluxo de contexto de transação.
Transport
Determina o protocolo de transporte subjacente a ser usado (por exemplo, TCP ou HTTP).
Codificação
Determina a codificação de mensagens, por exemplo, texto/XML, binário ou MTOM (mecanismo de otimização de transmissão de mensagens), que determina como as mensagens são representadas como fluxos de bytes no fio.
Associações fornecidas pelo sistema
O WCF inclui um conjunto de associações fornecidas pelo sistema que são projetadas para abranger a maioria dos requisitos e cenários do aplicativo. As classes a seguir representam alguns exemplos de associações fornecidas pelo sistema:
BasicHttpBinding: uma associação de protocolo HTTP adequada para se conectar aos serviços Web que estão em conformidade com a especificação de Perfil Básico 1.1 do WS-I (por exemplo, serviços baseados em [ASMX] do ASP.NET Web services).
WSHttpBinding: uma associação de protocolo HTTP adequada para se conectar a pontos de extremidade que estão em conformidade com os protocolos de especificações dos serviços Web.
NetNamedPipeBinding: usa as tecnologias de codificação binária e enquadramento do .NET em conjunto com o transporte de pipe nomeado pelo Windows para se conectar a outros pontos de extremidade do WCF no mesmo computador.
NetMsmqBinding: usa as tecnologias de codificação binária e enquadramento do .NET em conjunto com o Enfileiramento de Mensagens (também conhecio como MSMQ) para criar conexões de mensagens enfileiradas com outros pontos de extremidade do WCF.
Para obter uma lista completa das associações fornecidas pelo sistema, com descrições, consulte Associações fornecidas pelo sistema.
Associações personalizadas
Se a coleção de associações fornecidas pelo sistema não tiver a combinação correta de recursos que um aplicativo de serviço exige, você poderá criar uma associação CustomBinding. Para obter mais informações sobre os elementos de uma associação CustomBinding, consulte <customBinding> e Associações personalizadas.
Usar associações
O uso de associações envolve duas etapas básicas:
Selecione ou defina uma associação. O método mais fácil é escolher uma das associações fornecidas pelo sistema e usar suas configurações padrão. Você também pode escolher uma associação fornecida pelo sistema e redefinir seus valores de propriedade para atender aos seus requisitos. Como alternativa, você pode criar uma associação personalizada e definir todas as propriedades conforme necessário.
Crie um ponto de extremidade que use essa associação.
Código e configuração
Você pode definir ou configurar associações por meio de código ou configuração. Essas duas abordagens são independentes do tipo de associação usado, por exemplo, se você estiver usando um sistema fornecido ou uma associação CustomBinding. Em geral, o uso do código fornece controle completo sobre a definição de uma associação quando você compila. O uso da configuração, por outro lado, permite que um administrador do sistema ou o usuário de um serviço ou cliente do WCF altere os parâmetros das associações. Essa flexibilidade geralmente é desejável porque não há como prever os requisitos de computador específicos e condições de rede nas quais um aplicativo WCF deve ser implantado. Separar as informações de associação (e endereçamento) do código permite que os administradores alterem os detalhes da associação sem precisar recompilar ou reimplantar o aplicativo. Observe que, se a associação for definida no código, ela substituirá quaisquer definições baseadas em configuração feitas no arquivo de configuração. Para obter exemplos dessas abordagens, consulte os seguintes tópicos:
Como hospedar um serviço WCF em um aplicativo gerenciado fornece um exemplo de criação de uma associação no código.
Tutorial: Criar um cliente do Windows Communication Foundation fornece um exemplo de criação de um cliente usando a configuração.