Extremos: direcciones, enlaces y contratos
Toda comunicación con un servicio de Windows Communication Foundation (WCF) se produce a través de los extremos del servicio. Los extremos proporcionan acceso a los clientes a la funcionalidad que ofrece un servicio de WCF.
Cada extremo está compuesto de cuatro propiedades:
- Una dirección que indica dónde se puede encontrar el extremo.
- Un enlace que especifica cómo se puede comunicar un cliente con el extremo.
- Un contrato que identifica las operaciones disponibles.
- Un conjunto de comportamientos que especifican detalles de implementación local del extremo.
En este tema se describe esta estructura de extremo y se explica cómo se representa en el modelo de objetos de WCF.
Estructura de un extremo
Cada extremo está compuesto de lo siguiente:
- Dirección: la dirección identifica únicamente el extremo e indica a los consumidores potenciales del servicio dónde se ubica éste. Está representado en el modelo de objetos de WCF por la clase EndpointAddress. Una clase EndpointAddress contiene:
- Una propiedad Uri, que representa la dirección del servicio.
- Una propiedad Identity, que representa la identidad de seguridad del servicio y una colección de encabezados de mensaje opcionales. Los encabezados de mensaje opcionales se utilizan para proporcionar información de direccionamiento adicional y más detallada para identificar o interactuar con el extremo.
Para obtener más información, consulte Especificación de una dirección de extremo.
- Enlace: el enlace especifica cómo comunicarse con el extremo. Esto incluye:
- El protocolo de transporte que se ha de utilizar (por ejemplo, TCP o HTTP).
- La codificación que se ha de utilizar para los mensajes (por ejemplo, texto o binario).
- Los requisitos de seguridad necesarios (por ejemplo, SSL o seguridad de mensaje SOAP).
Para obtener más información, consulte Información general de enlaces de Windows Communication Foundation. Un enlace se representa en el modelo de objetos de WCF mediante la clase base abstracta Binding. Para la mayoría de los escenarios, los usuarios pueden utilizar uno de los enlaces proporcionados por el sistema. Para obtener más información, consulte Enlaces proporcionados por el sistema.
- Contratos: el contrato describe qué funcionalidad expone el extremo al cliente. Un contrato especifica:
- Qué operaciones puede llamar un cliente.
- La forma del mensaje.
- El tipo de parámetros de entrada o datos requeridos para llamar a la operación.
- Qué tipo de mensaje de procesamiento respuesta puede esperar el cliente.
Para obtener más información sobre la definición de un contrato, vea Diseño de contratos de servicios.
- Comportamientos: puede utilizar los comportamientos de extremo para personalizar el comportamiento local del extremo de servicio. Los comportamientos de extremo logran esto participando en el proceso de generación de un tiempo de ejecución de WCF. Un ejemplo de un comportamiento de extremo es la propiedad ListenUri, que permite especificar una dirección de escucha diferente que la dirección SOAP o la dirección del Lenguaje de descripción de servicios web (WSDL). Para obtener más información, consulte ClientViaBehavior.
Definición de extremos
Puede especificar el extremo de un servicio de manera imperativa mediante código o de manera declarativa mediante configuración. Para obtener más información, consulte Cómo crear un extremo de servicio en configuración y Cómo crear un extremo de servicio en código.
En esta sección
En esta sección se explica el propósito de los enlaces, extremos y direcciones; se muestra cómo configurar un enlace y un extremo; y cómo utilizar el comportamiento ClientVia y la propiedad ListenUri.
- Direcciones de extremo
Describe cómo se direccionan los extremos en WCF.
- Enlaces de Windows Communication Foundation
Describe cómo se utilizan los enlaces para especificar el transporte, codificación y detalles protocolares requeridos para que los clientes y servicios se comuniquen entre sí.
- Contratos
Describe cómo los contratos definen los métodos de un servicio.
- Cómo crear un extremo de servicio en configuración
Describe cómo crear un extremo de servicio mediante configuración
- Cómo crear un extremo de servicio en código
Describe cómo crear un extremo de servicio mediante código.
- Cómo: Utilizar Svcutil.exe para validar el código del servicio compilado
Describe cómo detectar errores en las implementaciones y configuraciones de servicio sin hospedar el servicio mediante la ServiceModel Metadata Utility Tool (Svcutil.exe).