Compartir a través de


Cómo publicar metadatos para un servicio mediante un archivo de configuración

Éste es uno de dos temas de instrucciones para la publicación de metadatos para un servicio de Windows Communication Foundation (WCF). Hay dos maneras de especificar cómo debería publicar metadatos un servicio: mediante un archivo de configuración y mediante código. En este tema se muestra cómo publicar metadatos para un servicio mediante un archivo de configuración. Para obtener más información acerca de publicación de metadatos mediante código, vea Publicación de metadatos para un servicio mediante código. La publicación de metadatos permite a los clientes recuperar los metadatos mediante una solicitud GET de WS-Transfer o mediante una solicitud HTTP/GET utilizando la cadena de solicitud ?wsdl. Para estar seguro de que el código funciona, cree un servicio básico de WCF. Se proporciona un servicio autohospedado básico para simplificar en el código siguiente.

Este servicio es un servicio autohospedado que se configura utilizando un archivo de configuración. El archivo de configuración siguiente sirve de punto de partida para este tema.

Publicación de metadatos para un servicio WCF mediante un archivo de configuración

  1. Dentro del archivo App.config, después del elemento </services> de cierre, cree un elemento <behaviors>.

  2. Dentro del elemento <behaviors>, agregue un nuevo elemento <serviceBehaviors>.

  3. Agregue un elemento <behavior> al elemento <serviceBehaviors> y especifique un valor para el atributo name del elemento <behavior>.

  4. Agregue un elemento <serviceMetadata> al elemento <behavior>. Establecer el atributo httpGetEnabled en true y el atributo policyVersion en Policy15. httpGetEnabled permite al servicio responder a las solicitudes de metadatos realizadas por una solicitud HTTP GET. policyVersion indica al servicio que cumpla con WS-Policy 1.5 al generar los metadatos.

  5. Agregue un atributo behaviorConfiguration al elemento <service> y especifique el atributo name del elemento <behavior> agregado en el paso 1, como en el siguiente código de ejemplo.

  6. Agregue uno o más elementos <endpoint> con el contrato establecido en IMetadataExchange, como en el siguiente código de ejemplo.

  7. Para los extremos de metadatos agregados en el paso 6, establezca el atributo binding en uno de los siguientes valores:

    • mexHttpBinding para la publicación HTTP.
    • mexHttpsBinding para la publicación HTTPS.
    • mexNamedPipeBinding para la publicación de la canalización con nombre.
    • mexTcpBinding para la publicación TCP.
  8. Para los extremos de metadatos agregados en el paso 6, establezca la dirección en:

    • Una cadena vacía para utilizar la dirección base de la aplicación host como el punto de publicación si la dirección base es igual que el enlace de los metadatos.
    • Una dirección relativa si la aplicación host tiene una dirección base.
    • Una dirección absoluta
  9. Genere y ejecute la aplicación de consola.

  10. Utilice Internet Explorer para ir a la dirección base del servicio (https://localhost:8001/MetadataSample en este ejemplo) y comprobar que la publicación de los metadatos está activada. Si no, un mensaje en la parte superior de la página resultante muestra: "La publicación de metadatos para este servicio está deshabilitad actualmente".

Ejemplo

El siguiente ejemplo de código muestra la implementación de un servicio WCF básico y el archivo de configuración que publica los metadatos del servicio.

Consulte también

Tareas

Hospedaje de un servicio WCF en un aplicación administrada
Publicación de metadatos para un servicio mediante código

Referencia

ServiceMetadataBehavior

Conceptos

Información general de la arquitectura de metadatos
Utilización de los metadatos

Otros recursos

Self-Host