Comment : publier les métadonnées d'un service à l'aide d'un fichier de configuration
C'est l'une des deux rubriques Comment qui traite de la publication des métadonnées pour un service Windows Communication Foundation (WCF). Il y a deux façons de spécifier comment un service doit publier des métadonnées : à l'aide d'un fichier de configuration et à l'aide du code. Cette rubrique explique comment publier les métadonnées pour un service à l'aide d'un fichier de configuration. Pour plus d'informations sur la publication des métadonnées dans le code, consultez Comment : publier les métadonnées d'un service à l'aide de code. La publication des métadonnées permet aux clients de récupérer les métadonnées via une demande WS-Transfert GET ou une demande HTTP/GET à l'aide de la chaîne de requête ?wsdl. Pour être sûr que le code fonctionne, créez un service WCF de base. Pour plus de simplicité, un service auto-hébergé de base est fourni dans le code suivant.
Ce service est un service auto-hébergé configuré à l'aide d'un fichier de configuration. Le fichier de configuration suivant sert comme point de départ pour cette rubrique.
Pour publier les métadonnées d'un service WCF à l'aide d'un fichier de configuration d'application
Dans le fichier App.config, après la fermeture de l'élément </services>, créez un élément <behaviors>.
Dans l'élément <behaviors>, ajoutez un nouvel élément <serviceBehaviors>.
Ajoutez un élément <behavior> à l'élément <serviceBehaviors> et spécifiez une valeur pour l'attribut name de l'élément <behavior>.
Ajoutez un élément <serviceMetadata> à l'élément <behavior>. Affectez à l'attribut httpGetEnabledtrue et à l'attribut policyVersion la valeur Policy15. httpGetEnabled permet au service de répondre aux demandes de métadonnées faites par une demande HTTP GET. policyVersion indique au service de se conformer à WS-Policy 1.5 lors de la génération des métadonnées.
Ajoutez un attribut behaviorConfiguration à l'élément <service> et spécifiez l'attribut name de l'élément <behavior> ajouté à l'étape 1, comme dans l'exemple de code suivant.
Ajoutez un ou plusieurs éléments <endpoint> et attribuez au contrat la valeur IMetadataExchange, comme dans l'exemple de code suivant.
Pour les points de terminaison de métadonnées ajoutés à étape 6, affectez à l'attribut binding l'une des valeurs suivantes :
- mexHttpBinding pour la publication HTTP.
- mexHttpsBinding pour la publication HTTPS.
- mexNamedPipeBinding pour la publication de canal nommé.
- mexTcpBinding pour la publication TCP.
Pour les points de terminaison de métadonnées ajoutés à étape 6, attribuez à l'adresse :
- Une chaîne vide pour utiliser l'adresse de base de l'application hôte comme point de publication si l'adresse de base est la même que la liaison de métadonnées.
- Une adresse relative si l'application hôte a une adresse de base.
- Une adresse absolue
Créez et exécutez l'application console.
Utilisez Internet Explorer pour naviguer jusqu'à l'adresse de base du service (https://localhost:8001/MetadataSample dans cet exemple) et vérifiez que la publication des métadonnées est activée. Dans la négative, un message s'affiche en haut de la page résultante : "La publication des métadonnées pour ce service est actuellement désactivée".
Exemple
L'exemple de code suivant affiche l'implémentation d'un service WCF de base et le fichier de configuration qui publie les métadonnées pour le service.
Voir aussi
Tâches
Comment : héberger un service WCF dans une application managée
Comment : publier les métadonnées d'un service à l'aide de code
Référence
Concepts
Vue d'ensemble de l'architecture de métadonnées
Utilisation des métadonnées