Dirección del extremo

Una dirección de punto de conexión representa la dirección de un servicio en la red. Al abrir un canal, llamando a la función WsOpenChannel , debe proporcionar la dirección del punto de conexión del servicio con el que se va a comunicar, así como especificar el canal con el que desea abrir.

Una dirección de punto de conexión consta de:

  • una dirección URL
  • un conjunto de encabezados (opcional)
  • un conjunto de extensiones (opcional)
  • una identidad opcional que representa la identidad de seguridad del servicio.

Cuando se direcciona un mensaje, la dirección URL se convierte en el encabezado "To" del mensaje. Los encabezados que forman parte de la dirección del punto de conexión también se agregan al mensaje.

Diagrama que muestra los encabezados de dirección del punto de conexión que se agregan a un mensaje.

Los canales abordan automáticamente los mensajes que se envían mediante la estructura de WS_ENDPOINT_ADDRESS que se pasó a WsOpenChannel. También puede usar la función WsAddressMessage para invalidar este comportamiento predeterminado.

Cuando se pasa WS_ENDPOINT_ADDRESS como parámetro, las funciones WsOpenChannel y WsOpenServiceProxy crean una copia del parámetro WS_ENDPOINT_ADDRESS en memoria y su tamaño está limitado por 65536 bytes. WsAddressMessage no tiene esta limitación porque no requiere crear una copia del parámetro WS_ENDPOINT_ADDRESS .

Las extensiones especificadas en el campo de extensiones de WS_ENDPOINT_ADDRESS no se usan para direccionar el mensaje, sino que son un mecanismo de extensibilidad que se puede usar para proporcionar información adicional (por ejemplo, metadatos) sobre el servicio. Las extensiones comunes se pueden leer con la función WsReadEndpointAddressExtension .

El campo de identidad opcional de la dirección del punto de conexión puede incluir, por ejemplo, el nombre DNS de la máquina en la que se ejecuta el servicio o el UPN de la cuenta de Windows en la que se ejecuta el servicio. El campo de identidad no se usa para dirigir el mensaje, pero se puede usar para obtener un token de seguridad para el servicio (por ejemplo, para obtener un vale kerberos en el UPN de destino) y para comprobar la identidad de las respuestas del servicio (por ejemplo, una identidad DNS usada para las comprobaciones de nombres en el certificado de servicio devuelto durante SSL).

Las direcciones de punto de conexión se pueden leer y escribir mediante la serialización con el valor de enumeración WS_ENDPOINT_ADDRESS_TYPE de WS_TYPE. Tenga en cuenta que para serializar una dirección de punto de conexión, debe conocer la versión de la especificación utilizada para los encabezados de direccionamiento, como se especifica en la enumeración WS_ADDRESSING_VERSION .