2010-06-14 6 views
8

En référence à mon previous question, j'aimerais savoir comment extraire des informations d'un service WCF d'une application client pour savoir quelles méthodes/types sont exposés si le service expose un seul point de terminaison qui utilise webHttpBinding? Pour résumer, dans ma question précédente, j'ai appris qu'un point de terminaison utilisant webHttpBinding n'est pas exposé dans le WSDL généré parce que ce serait un point de terminaison JSON et n'est tout simplement pas compatible.Récupérer les métadonnées d'un noeud final webHttpBinding

Répondre

10

WebHttpBinding est une liaison basée sur REST - REST ne pas exposer des métadonnées comme WSDL/XSD contrairement à SOAP.

Il n'existe aucun moyen d'extraire les métadonnées à partir d'un point de terminaison REST pour le moment. Il y a quelques efforts en cours pour établir une construction similaire pour REST appelée WADL (Web Application Description Language) - mais ce n'est pas encore normalisé pour le moment. Pour l'instant, avec les points de terminaison REST, vous devez soit vous débrouiller vous-même, soit disposer d'une documentation fournie par le fournisseur de services, par exemple, sur les points de terminaison REST. une page HTML statique ou quelque chose.

.NET 4 fournit un certain niveau d'une page d'aide générée automatiquement - voir this blog post ou MSDN docs pour plus d'informations. Mais il est encore loin d'être formalisé et interprétable par machine comme WSDL/XSD.

0

Je me demande pourquoi les exemples REST vous demandent d'exposer un point de terminaison MEX. Il n'est pas nécessaire et est ici comment supprimer proprement il:

  1. Supprimer critère MEX de la section de service du fichier de configuration.

  2. Supprimez la ligne activée par les métadonnées de service dans la section de comportement du service du fichier de configuration.

  3. Modifier le projet Visual Studio (en supposant qu'il est une bibliothèque de services WCF) et supprimer la ligne:

    <StartArguments> /client:"WcfTestClient.exe » </StartArguments >

Si vous avez d'autres services non-repos, vous voudrez laisser les 2 dernières parties présentes. Vous devez supprimer le client WCF lors de la désactivation de MEX sinon il se plaindra pendant le débogage s'il ne peut pas énumérer les services du projet (qu'ils aient des métadonnées utiles ou non).

Questions connexes