Endereço do ponto final
Um endereço de ponto de extremidade representa o endereço de um serviço na rede. Quando você abre um canal , chamando a função WsOpenChannel, você precisa fornecer o endereço do ponto final do serviço com o qual você se comunicar, bem como especificar o canal que deseja abrir.
Um endereço de ponto final consiste em:
- um URL
- um conjunto de cabeçalhos (opcional)
- um conjunto de extensões (opcional)
- uma identidade opcional que representa a identidade de segurança do serviço.
Quando uma mensagem é endereçada, o URL torna-se o cabeçalho "Para" da mensagem. Todos os cabeçalhos que fazem parte do endereço do ponto de extremidade também são adicionados à mensagem.
Os canais endereçam automaticamente todas as mensagens que são enviadas, usando a estrutura WS_ENDPOINT_ADDRESS que foi passada para o WsOpenChannel. Você também pode usar a função WsAddressMessage para substituir esse comportamento padrão.
Quando WS_ENDPOINT_ADDRESS é passado como um parâmetro, o WsOpenChannel e funções de WsOpenServiceProxy criam uma cópia do parâmetro WS_ENDPOINT_ADDRESS na memória e seu tamanho é limitado por 65536 bytes. WsAddressMessage não tem essa limitação porque não requer a criação de uma cópia do parâmetro WS_ENDPOINT_ADDRESS.
As extensões especificadas no campo extensões de de WS_ENDPOINT_ADDRESS não são usadas para endereçar a mensagem, mas são um mecanismo de extensibilidade que pode ser usado para fornecer informações adicionais (por exemplo, metadados) sobre o serviço. As extensões comuns podem ser lidas com a funçãoWsReadEndpointAddressExtension.
O campo de identidade opcional do endereço do ponto de extremidade pode incluir, por exemplo, o nome DNS da máquina na qual o serviço está sendo executado ou o UPN da conta do Windows sob a qual o serviço está sendo executado. O campo de identidade não é usado para endereçar a mensagem, mas pode ser usado para obter um token de segurança para o serviço (por exemplo, para obter um tíquete Kerberos para o UPN de destino) e para verificar a identidade das respostas do serviço (por exemplo, uma identidade DNS usada para verificações de nome no certificado de serviço retornado durante SSL).
Os endereços de ponto de extremidade podem ser lidos e gravados usando de serialização com o valor de enumeração WS_ENDPOINT_ADDRESS_TYPE de WS_TYPE. Observação Para serializar um endereço de ponto de extremidade, você deve saber a versão da especificação usada para os cabeçalhos de endereçamento, conforme especificado na enumeração WS_ADDRESSING_VERSION.