Publication de métadonnées

Les services Windows Communication Foundation (WCF) publient les métadonnées en publiant un ou plusieurs points de terminaison. La publication de métadonnées de service permet d'accéder à celles-ci à l'aide de protocoles standardisés, tels que WS-MetadataExchange (MEX) et les requêtes HTTP/GET. Les points de terminaison de métadonnées sont semblables aux autres points de terminaison de service dans le sens où ils ont une adresse, une liaison et un contrat, et qu’ils peuvent être ajoutés à un hôte de service via la configuration ou du code impératif.

Publication de points de terminaison de métadonnées

Pour publier des points de terminaison de métadonnées pour un service WCF, vous devez dans un premier temps ajouter le comportement de service ServiceMetadataBehavior au service. L'ajout d'une instance System.ServiceModel.Description.ServiceMetadataBehavior permet à votre service d'exposer des points de terminaison de métadonnées. Après avoir ajouté le comportement de service System.ServiceModel.Description.ServiceMetadataBehavior, vous pouvez ensuite exposer les points de terminaison de métadonnées qui prennent en charge le protocole MEX ou qui répondent aux requêtes HTTP/GET.

System.ServiceModel.Description.ServiceMetadataBehavior utilise WsdlExporter pour exporter les métadonnées de tous les points de terminaison de service de votre service. Pour plus d’informations sur l’exportation de métadonnées à partir d’un service, consultez Exportation et importation de métadonnées.

System.ServiceModel.Description.ServiceMetadataBehavior ajoute une instance ServiceMetadataExtension comme extension à votre hôte de service. System.ServiceModel.Description.ServiceMetadataExtension fournit l'implémentation pour les protocoles de publication de métadonnées. Vous pouvez également utiliser System.ServiceModel.Description.ServiceMetadataExtension pour obtenir les métadonnées du service au moment de l’exécution en accédant à la propriété ServiceMetadataExtension.Metadata.

Points de terminaison de métadonnées MEX

Pour ajouter des points de terminaison de métadonnées qui utilisent le protocole MEX, ajoutez des points de terminaison de service à votre hôte de service qui utilisent le contrat de service nommé IMetadataExchange. WCF inclut une interface IMetadataExchange avec ce nom de contrat de service que vous pouvez utiliser dans le cadre du modèle de programmation WCF. Les points de terminaison WS-MetadataExchange (ou points de terminaison MEX) peuvent utiliser l’une des quatre liaisons par défaut que les méthodes de fabrique statiques exposent sur la classe MetadataExchangeBindings afin d’établir une correspondance avec les liaisons par défaut utilisées par les outils WCF tels que Svcutil.exe. Vous pouvez également configurer des points de terminaison de métadonnées MEX à l’aide de votre propre liaison personnalisée.

Points de terminaison de métadonnées HTTP GET

Pour ajouter un point de terminaison de métadonnées à votre service qui répond aux requêtes HTTP/GET, affectez HttpGetEnabled à la propriété System.ServiceModel.Description.ServiceMetadataBehavior sur true. Vous pouvez également configurer un point de terminaison de métadonnées qui utilise HTTPS en affectant HttpsGetEnabled à la propriété System.ServiceModel.Description.ServiceMetadataBehavior sur true.

Dans cette section

Procédure : publier des métadonnées pour un service à l’aide d’un fichier de configuration
Indique comment configurer un service WCF afin de publier les métadonnées, et permettre ainsi aux clients de les récupérer à l’aide d’un échange WS-MetadataExchange ou d’une requête HTTP/GET en utilisant la chaîne de requête ?wsdl.

Procédure : publier des métadonnées pour un service à l’aide de code
Indique comment activer la publication de métadonnées pour un service WCF dans le code afin que les clients puissent les récupérer à l’aide d’un échange WS-MetadataExchange ou d’une requête HTTP/GET en utilisant la chaîne de requête ?wsdl.

Informations de référence

ServiceMetadataBehavior

IMetadataExchange

ServiceMetadataExtension

MetadataExchangeBindings

Voir aussi