Publication et récupération de métadonnées sur une liaison personnalisée
Le System.ServiceModel.Description.ServiceMetadataBehavior fournit la prise en charge de l'ajout de points de terminaison de métadonnées à un service. Ces points de terminaison de métadonnées peuvent répondre aux demandes GET HTTP à une URL qui a un querystring ?wsdl
et aux demandes GET WS-Transfer telles que définies dans la spécification WS-MetadataExchange (MEX). Les points de terminaison MEX implémentent le contrat System.ServiceModel.Description.IMetadataExchange.
Publication de métadonnées sur une liaison personnalisée
Les points de terminaison de métadonnées GET HTTP et les points de terminaison de métadonnées GET HTTPS sont activés en affectant à la propriété ServiceMetadataBehavior.HttpGetEnabled ou ServiceMetadataBehavior.HttpsGetEnabled la valeur true
. Les liaisons pour ces points de terminaison ne peuvent pas être configurées.
Toutefois, le contrat IMetadataExchange peut être utilisé avec tout point de terminaison, y compris ceux qui utilisent des liaisons personnalisées, car les points de terminaison IMetadataExchange sont identiques à tout autre point de terminaison de service Windows Communication Foundation (WCF). Si vous savez comment modifier la configuration d’une liaison fournie par le système ou comment configurer un System.ServiceModel.Channels.CustomBinding, vous pouvez configurer une liaison pour une utilisation avec un point de terminaison IMetadataExchange.
Récupération de métadonnées sur une liaison personnalisée
Les métadonnées peuvent être récupérées à partir de points de terminaison de métadonnées Get HTTP et Get HTTPS à l'aide de demandes GET HTTP ou HTTPS standard.
Pour récupérer des métadonnées à partir d’un point de terminaison de métadonnées MEX, vous pouvez utiliser en général l’une des liaisons MEX standard prises en charge par WCF. Pour plus d’informations, consultez System.ServiceModel.Description.MetadataExchangeBindings. Le type System.ServiceModel.Description.MetadataExchangeClient et l’outil Svcutil.exe sélectionnent automatiquement l’une de ces liaisons MEX standard en fonction de l’adresse du point de terminaison de métadonnées spécifié.
Si un point de terminaison de métadonnées MEX utilise une liaison différente de l’une des liaisons MEX standard, vous pouvez configurer la liaison utilisée par le MetadataExchangeClient à l’aide de code ou en fournissant une configuration de point de terminaison de client IMetadataExchange. L'outil Svcutil.exe charge automatiquement à partir de son fichier de configuration une configuration de point de terminaison de client IMetadataExchange qui a le même nom que le modèle d'URI pour l'adresse du point de terminaison de métadonnées.
Sécurité
Lors de la publication de métadonnées sur une liaison personnalisée, assurez-vous que la liaison fournit la prise en charge de sécurité requise par vos métadonnées. Par exemple, pour empêcher la divulgation d'informations et vous assurer que votre client a le droit d'obtenir les métadonnées, vous pouvez rendre vos métadonnées et votre application plus sécurisées en configurant votre point de terminaison IMetadataExchange de façon à exiger l'authentification et le chiffrement. L’exemple Point de terminaison de métadonnées sécurisé personnalisée illustre ce scénario.