Pontos de extremidade: endereços, associações e contratos
Toda a comunicação com um serviço Windows Communication Foundation (WCF) ocorre por meio dos pontos de extremidade do serviço. Os pontos de extremidade fornecem aos clientes acesso à funcionalidade oferecida por um serviço WCF.
Cada ponto de extremidade consiste em quatro propriedades:
Um endereço que indica onde o ponto de extremidade pode ser encontrado.
Uma associação que especifica como um cliente pode se comunicar com o ponto de extremidade.
Um contrato que identifica as operações disponíveis.
Um conjunto de comportamentos que especificam detalhes de implementação local do ponto de extremidade.
Este tópico discute essa estrutura de ponto de extremidade e explica como ela é representada no modelo de objeto do WCF.
A estrutura de um ponto de extremidade
Cada ponto de extremidade consiste do seguinte:
Endereço: o endereço identifica exclusivamente o ponto de extremidade e informa aos potenciais consumidores do serviço onde ele está localizado. Ele é representado no modelo de objeto do WCF pela classe EndpointAddress. Uma classe EndpointAddress contém:
Uma propriedade Uri, que representa o endereço do serviço.
Uma propriedade Identity, que representa a identidade de segurança do serviço e uma coleção de cabeçalhos de mensagem opcionais. Os cabeçalhos de mensagem opcionais são usados para fornecer informações de endereçamento adicionais e mais detalhadas para identificar ou interagir com o ponto de extremidade.
Para obter mais informações, consulte Especificando um endereço de ponto de extremidade.
Associação: a associação especifica como se comunicar com o ponto de extremidade. Isso inclui:
O protocolo de transporte a ser usado (por exemplo, TCP ou HTTP).
A codificação a ser usada para as mensagens (por exemplo, texto ou binário).
Os requisitos de segurança necessários (por exemplo, segurança de mensagem SSL ou SOAP).
Para obter mais informações, consulte Visão geral de associação do WCF. Uma associação é representada no modelo de objeto do WCF pela classe base abstrata Binding. Para a maioria dos cenários, os usuários podem usar uma das associações fornecidas pelo sistema. Para obter mais informações, consulte Associações fornecidas pelo sistema.
Contratos: o contrato descreve qual funcionalidade o ponto de extremidade expõe ao cliente. Um contrato especifica:
Quais operações podem ser chamadas por um cliente.
A forma da mensagem.
O tipo de parâmetros de entrada ou dados necessários para chamar a operação.
Que tipo de mensagem de processamento ou resposta o cliente pode esperar.
Para obter mais informações sobre como definir um contrato, consulte Criando contratos de serviço.
Comportamentos: você pode usar comportamentos de ponto de extremidade para personalizar o comportamento local do ponto de extremidade de serviço. Os comportamentos de ponto de extremidade obtêm isso participando do processo de compilação de um runtime do WCF. Um exemplo de um comportamento de ponto de extremidade é a propriedade ListenUri, que permite você especificar um endereço de escuta diferente do endereço SOAP ou linguagem WSDL. Para obter mais informações, consulte ClientViaBehavior.
Definindo pontos de extremidade
Você pode especificar o ponto de extremidade para um serviço de forma imperativa usando código ou declarativamente por meio da configuração. Para obter mais informações, consulte Como criar um ponto de extremidade de serviço na configuração e Como criar um ponto de extremidade de serviço no código.
Nesta seção
Esta seção explica a finalidade de associações, pontos de extremidade e endereços; mostra como configurar uma associação e um ponto de extremidade; e demonstra como usar o comportamento ClientVia
e a propriedade ListenUri
.
Endereços
Descreve como os pontos de extremidade são abordados no WCF.
Associações
Descreve como as associações são usadas para especificar os detalhes de transporte, codificação e protocolo necessários para que clientes e serviços se comuniquem entre si.
Contratos
Descreve como os contratos definem os métodos de um serviço.
Como: criar um ponto de extremidade de serviço em configuração
Descreve como criar um ponto de extremidade de serviço em configuração.
Como: criar um ponto de extremidade de serviço em código
Descreve como criar um ponto de extremidade de serviço em código.
Como: usar Svcutil.exe para validar o código de serviço compilado
Descreve como detectar erros em implementações e configurações de serviço sem hospedar o serviço usando a Ferramenta de Utilitário de Metadados do ServiceModel (Svcutil.exe).