Comment : publier les métadonnées d'un service à l'aide de code

C'est l'une des deux rubriques Comment qui illustre 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 du code. Pour plus d'informations sur la publication des métadonnées dans un fichier de configuration, consultez Comment : publier les métadonnées d'un service à l'aide d'un fichier de configuration. 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, vous devez créer un service WCF de base. Un service auto-hébergé de base est fourni dans le code suivant.

Pour publier les métadonnées dans le code

  1. Dans la méthode principale d'une application console, instanciez un objet ServiceHost en passant le type de service et l'adresse de base.

  2. Créez immédiatement un bloc try sous le code pour l'étape 1, celui-ci intercepte toutes les exceptions levées pendant l'exécution du service.

  3. Vérifiez si l'hôte de service contient déjà un ServiceMetadataBehavior, si ce n'est pas le cas, créez une instance ServiceMetadataBehavior.

  4. Affectez à la propriété HttpGetEnabled la valeur true.

  5. Le ServiceMetadataBehavior contient une MetadataExporter. Le MetadataExporter contient une PolicyVersion. Affectez à la propriété PolicyVersion la valeur Policy15. Vous pouvez affecter à la propriété PolicyVersion la valeur Policy12. Lorsqu'il a la valeur Policy15 l'exportateur de métadonnées génère les informations de stratégie qui se conforment à WS-Policy 1.5. Lorsqu'il a la valeur Policy12 l'exportateur de métadonnées génère les informations de stratégie qui se conforment à WS-Policy 1.2.

  6. Ajoutez l'instance ServiceMetadataBehavior à la collection de comportements de l'hôte de service.

  7. Ajoutez le point de terminaison d'échange des métadonnées à l'hôte de service.

  8. Ajoutez un point de terminaison d'application à l'hôte de service.

  9. Ouvrez l'hôte de service et attendez les appels entrants. Lorsque l'utilisateur appuie sur ENTRÉE, fermez l'hôte de service.

  10. Créez et exécutez l'application console.

  11. 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. Vous devriez voir s'afficher une page Web qui indique "Service simple" en haut et plus bas "Vous a créé un service". 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 qui publie les métadonnées pour le service dans le code.

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 d'un fichier de configuration

Concepts

Vue d'ensemble de l'architecture de métadonnées
Utilisation des métadonnées

Autres ressources

Self-Host