Compartilhar via


Pontos de extremidade: endereços, associações e contratos

Toda a comunicação com um serviço WCF (Windows Communication Foundation) ocorre por meio dos pontos de extremidade do serviço. Os endpoints 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 endpoint pode ser encontrado.

  • Uma vinculação que especifica como um cliente pode se comunicar com o endpoint.

  • 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 WCF.

A estrutura de um ponto de extremidade

Cada ponto de extremidade consiste do seguinte:

  • Endereço: o endereço identifica de forma única o endpoint e informa aos potenciais consumidores do serviço onde ele está localizado. Ele é representado no modelo de objeto WCF pela EndpointAddress classe. Uma EndpointAddress classe contém:

    • Uma propriedade Uri, que representa o endereço do serviço.

    • Uma Identity propriedade, que representa a identidade de segurança do serviço e uma coleção de cabeçalhos de mensagem opcionais. Os cabeçalhos opcionais de mensagens são usados para fornecer informações de endereçamento adicionais e mais detalhadas para identificar ou interagir com o destino.

    Para obter mais informações, consulte Especificando um Endereço de Endpoint.

  • Vinculação: A vinculação especifica como se comunicar com o endpoint. 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 das associações do WCF. Uma associação é representada no modelo de objeto WCF pela classe Bindingbase abstrata. Para a maioria dos cenários, os usuários podem usar uma das associações fornecidas pelo sistema. Para obter mais informações, consulte System-Provided Bindings.

  • Contratos: o contrato delimita qual funcionalidade o endpoint 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 Designing Service Contracts.

  • Comportamentos: você pode usar comportamentos do ponto de extremidade para personalizar a conduta local do ponto de extremidade do 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 comportamento de endpoint é a propriedade ListenUri, que permite especificar um endereço de escuta diferente do endereço SOAP ou do endereço WSDL (Linguagem de Descrição dos Serviços Web). 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 ClientVia comportamento e a ListenUri propriedade.

Endereços
Descreve como os pontos de extremidade são abordados no WCF.

Vinculaçõ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 do 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).

Consulte também