Procédure : utiliser Svcutil.exe pour télécharger des documents de métadonnées
Svcutil.exe vous permet de télécharger des métadonnées à partir de systèmes en cours d'exécution et de les enregistrer dans des fichiers locaux. Pour les schémas d'URL HTTP et HTTPS, Svcutil.exe tente de récupérer les métadonnées à l'aide de WS-MetadataExchange et du processus Découverte de service Web XML. Pour tous les autres schémas d'URL, Svcutil.exe utilise uniquement WS-MetadataExchange.
Par défaut, Svcutil.exe utilise les liaisons définies dans la classe MetadataExchangeBindings. Pour configurer la liaison utilisée pour WS-MetadataExchange, vous devez définir un point de terminaison client dans le fichier de configuration de Svcutil.exe (svcutil.exe.config) qui utilise le contrat IMetadataExchange
et qui porte le même nom que le schéma d’URI (Uniform Resource Identifier) de l’adresse du point de terminaison des métadonnées.
Attention
Lors de l'exécution de Svcutil.exe pour obtenir des métadonnées pour un service qui expose deux contrats de service différents contenant chacun une opération du même nom, Svcutil.exe affiche une erreur indiquant « Impossible d'obtenir les métadonnées à partir de .... ». Par exemple, vous avez un service qui expose un contrat de service appelé ICarService
avec une opération Get(Car c)
et le même service expose un contrat de service appelé IBookService
avec une opération Get(Book b)
. Pour contourner ce problème, procédez comme suit :
Pour télécharger les métadonnées à l'aide de Svcutil.exe
Localisez l'outil Svcutil.exe à l'emplacement suivant :
C:\Program Files\Microsoft SDKs\Windows\v1.0.\bin
À l'invite de commandes, lancez l'outil en utilisant le format suivant.
svcutil.exe /t:metadata <url>* | <epr>
Vous devez spécifier l'option
/t:metadata
pour télécharger les métadonnées. Sinon, la configuration et le code client seront générés.L'argument
<url>
spécifie l'URL vers un point de terminaison de service qui fournit les métadonnées ou vers un document de métadonnées hébergé en ligne. L'argument<epr>
spécifie le chemin d’un fichier XML contenant unEndpointAddress
WS-Addressing pour un point de terminaison de service qui prend en charge WS-MetadataExchange.
Pour plus d’options sur l’utilisation de cet outil de téléchargement des métadonnées, consultez ServiceModel Metadata Utility Tool (Svcutil.exe).
Exemple
La commande suivante télécharge des documents de métadonnées à partir d'un service en cours d'exécution.
svcutil /t:metadata http://service/metadataEndpoint