web-dev-qa-db-fra.com

Quelle était la différence entre WSDL et Mex Endpoint dans WCF

J'ai quelques questions sur le point final mex.

  1. Dans les services Web existants, nous créons un proxy à l'aide de wsdl. Le WSDL expose les métadonnées du service Web. Dans wcf, un autre terme vient de l'extrémité mex, qui expose également les métadonnées, mais wsdl est toujours actif dans wcf. Je suis nouveau à wcf, et je suis confus en ce qui concerne le difference between wsdl & mex endpoint?

  2. Quelle est la signification de httpGetEnabled="false" or httpGetEnabled="true"?

  3. Si je règle httpGetEnabled="false", que se passera-t-il? Cela signifie-t-il que le client ne pourra pas ajouter de référence de service à partir de son IDE? Mais si je mets httpGetEnabled="false" et que le client vu peut ajouter une référence de service. Ce que fait le paramètre httpGetEnabled est très déroutant.

  4. Un gars a dit 

MEX et WSDL sont deux systèmes différents pour informer les clients potentiels sur la structure de votre service. Donc, vous pouvez choisir de faire soit vos contrats de service public (MEX) ou WSDL.

Si la déclaration ci-dessus est vraie, dites-moi quand utiliser MEX et quand utiliser WSDL?

  1. Comment puis-je désactiver mex et exposer mon service uniquement via WSDL?

  2. WSDL support all bidning like wshttp,wsdualhttp or tcp etc... Si possible, discutez de wsdl & mex en détail.

METTRE À JOUR

Tu as dit 

5. How can I disable mex and expose my service only through WSDL?

Do not specifiy a mex endpoint in your config and use httpGetEnabled.

Essayez-vous de dire qu’il ne devrait y avoir aucune entrée liée à un point de terminaison mex dans config et que httpgetenable ressemble à ce qui suit?

<serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8080/SampleService?wsdl"/>

Tu as dit 

Un WSDL est généralement exposé via http ou https pour obtenir des URL que vous ne pouvez pas configurer (par exemple, pour des raisons de sécurité ou pour une compatibilité ascendante). Les terminaux MEX exposent les métadonnées sur points de terminaison configurables et peut utiliser différents types de transport, tels que TCP ou HTTP, et différents types de mécanismes de sécurité.

Vous avez dit que mex est configurable, mais pas le wsdl. Que voulez-vous dire par mex is configurable? Veuillez expliquer quel type de configuration est prise en charge par mex et comment il peut être configuré.

Si je mets httpGetEnabled="false" then the WSDL ne sera pas possible de générer?

34
Thomas

1) Dans le service Web existant, nous créons un proxy à l’aide de wsdl. WSDL expose web méta-données de service. dans wcf un autre terme vient ce point final mex qui exposer également les métadonnées mais wsdl est toujours actif dans wcf.i suis nouveau dans wcf par conséquent je confonds quelle est la différence entre wsdl et mex point final?

C'est à peu près la même chose mais mex est conçu pour prendre en charge les protocoles non HTTP et pour les scénarios de configuration/sécurité avancés. WSDL est la méthode classique et MEX est la nouvelle version améliorée avec WCF.

2) quelle est la signification de httpGetEnabled = "false" ou httpGetEnabled = "true"

Il exposera les métadonnées via wsdl via l'URL defautl, même si vous n'avez pas défini de point de terminaison mex pour votre service.

3) si je définis httpGetEnabled = "false", que se passera-t-il? est-ce que ça veut dire que ce client ne sera pas en mesure d'ajouter une référence de service de l'EDI? mais je set httpGetEnabled = "false" et le client vu peut ajouter une référence de service . il est donc très déroutant pour moi que ce que httpGetEnabled soit faux ou vrai fait?

Un client peut ajouter une référence dans VS uniquement si httpGetEnabled/httpsGetEnabled est activé ou si vous avez défini un point de terminaison mex dans la configuration de votre service. La meilleure pratique consiste à exposer les métadonnées sur l'environnement de développement, mais pas sur la production. Vous pouvez également distribuer vos contrats de service via des assemblages séparés et utiliser ChannelFactory.

4) Un type a déclaré: - MEX et WSDL sont deux systèmes différents à raconter clients potentiels sur la structure de votre service. Afin que vous puissiez choisissez de rendre publics vos contrats de service au format (MEX) ou WSDL . si la déclaration ci-dessus est vraie, dites-moi quand utiliser MEX et quand utiliser WSDL? 

Un WSDL est généralement exposé via http ou https. Obtenez des URL que vous ne pouvez pas réellement configurer (par exemple, pour des raisons de sécurité ou pour des raisons de compatibilité ascendante). TCP ou HTTP et différents types de mécanismes de sécurité.

Donc, MEX est plus configurable, alors que WSDL est plus interopérable avec les anciennes versions de clients et les clients non.net qui fonctionnent avec les WSDL.

5) comment pourrais-je désactiver mex et exposer mon service via uniquement WSDL

Ne spécifiez pas de point de terminaison mex dans votre configuration et utilisez httpGetEnabled

6) WSDL supporte tous les enchères comme wshttp, wsdualhttp ou tcp etc ...

Exposer des métadonnées est totalement différent de l'appel du service.

METTRE &AGRAVE; JOUR

essayez-vous de dire qu’il ne devrait y avoir aucune entrée liée au point final mex dans config et httpgetenable ressemblerait à

Oui, vous n'avez pas besoin de spécifier un point de terminaison mex AND httpGetEnabled. Un seul est requis pour exposer les métadonnées. Ne spécifiez pas httpGetUrl car cela dépend de votre environnement d'hébergement.

vous avez dit que mex est configurable mais que wsdl ne l’est pas. que voulez-vous dire?. Le mex est configurable… discutez svp quel genre de configuration le mex support & comment configurer.

Les points de terminaison MEX sont des points de terminaison spéciaux qui permettent aux clients de recevoir les métadonnées du service en utilisant des messages SOAP au lieu de demandes d’obtention http. Vous pouvez créer un point de terminaison MEX auquel vous pouvez accéder via http, https, tcp et même des canaux nommés. HttpGetEnable vous permet d’exposer des métadonnées via la méthode HTTP GET, généralement l’adresse du service avec le suffixe "? Wsdl".

MEX et WSDL affichent presque la même chose.

Dans la plupart des cas, le point de terminaison MEX n’est pas nécessaire - l’utilisation de WSDL avec http get suffit généralement.

Je comprends votre intention de comprendre cette partie, mais n’y consacrez pas trop de temps: il y a tant d’autres fonctionnalités compliquées!

54
Cybermaxs

Les points de terminaison MEX sont des points de terminaison spéciaux qui permettent aux clients de recevoir les métadonnées du service en utilisant des messages SOAP au lieu de seulement des requêtes de type http (c'est-à-dire httpGetEnabled = "true"). Vous pouvez créer un point de terminaison MEX auquel vous pouvez accéder via http, https, tcp et même des canaux nommés.

La réponse que vous recevrez lors de l’appel de l’opération GetMetadata d’un noeud final MEX inclura le contenu du WSDL et tous les fichiers XSD qui y sont liés.

0
Taran