Compartir a través de


Publicación de metadatos para un servicio mediante código

É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 código. Para obtener más información acerca de publicación de metadatos mediante un archivo de configuración Cómo publicar metadatos para un servicio mediante un archivo de configuración. 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 asegurarse de que el código funciona, debe crear un servicio básico de WCF. En el código siguiente, se proporciona un servicio autohospedado básico.

Publicación de metadatos mediante código

  1. Dentro del método principal de una aplicación de consola, cree instancias de un objeto ServiceHost pasando el tipo de servicio y la dirección base.

  2. Cree un bloque try justo debajo del código del paso 1, esto detecta cualquier excepción que se produzca mientras se está ejecutando el servicio.

  3. Compruebe si el host del servicio ya contiene un ServiceMetadataBehavior, si no, cree una nueva instancia de ServiceMetadataBehavior.

  4. Establezca la propiedad HttpGetEnabled en true..

  5. El ServiceMetadataBehavior contiene una propiedad MetadataExporter. El MetadataExporter contiene una propiedad PolicyVersion. Establezca el valor de la propiedad PolicyVersion en Policy15. La propiedad PolicyVersion también se puede establecer en Policy12. Cuando se establece en Policy15, el exportador de metadatos genera información de directivas con los metadatos que cumple la especificación WS‑Policy 1.5. Cuando se establece en Policy12, el exportador de metadatos genera información de directiva que cumple la especificación WS‑Policy 1.2.

  6. Agregue la instancia de ServiceMetadataBehavior a la colección de comportamientos del host del servicio.

  7. Agregue el extremo de intercambio de metadatos al host del servicio.

  8. Agregue un extremo de aplicación al host del servicio.

  9. Abra el host del servicio y espere las llamadas entrantes. Cuando el usuario presione Entrar, cierre el host del servicio.

  10. Genere y ejecute la aplicación de consola.

  11. 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. Debería ver una página web que dice "Servicio Simple" en la parte superior y, justo debajo, "Ha creado un servicio". 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 código de ejemplo muestra la implementación de un servicio básico de WCF que publica metadatos para el servicio mediante código.

Consulte también

Tareas

Hospedaje de un servicio WCF en un aplicación administrada
Cómo publicar metadatos para un servicio mediante un archivo de configuración

Conceptos

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

Otros recursos

Self-Host