it-swarm.com.de

Was war der Unterschied zwischen WSDL und Mex Endpoint in der WCF?

Ich habe ein paar Fragen zum Endpunkt Mex.

  1. In älteren Web-Services erstellen wir einen Proxy mit wsdl. Die WSDL macht die Metadaten des Webservice verfügbar. In wcf kommt ein anderer Begriff, der mex-Endpunkt, der auch Metadaten verfügbar macht, wsdl lebt jedoch noch in wcf. Ich bin neu bei wcf und bin verwirrt wegen des difference between wsdl & mex endpoint?

  2. Was bedeutet httpGetEnabled="false" or httpGetEnabled="true"?

  3. Wenn ich httpGetEnabled="false" setze, was passiert dann? Bedeutet das, dass der Client keine Dienstreferenz aus seiner IDE hinzufügen kann? Wenn ich jedoch httpGetEnabled="false" setze und sah, kann der Client eine Servicereferenz hinzufügen. Was die Einstellung httpGetEnabled macht, ist sehr verwirrend.

  4. Ein Typ sagte 

MEX und WSDL sind zwei verschiedene Schemata, um potenziellen Kunden mitzuteilen über die Struktur Ihres Dienstes. Sie können also entweder Ihre Serviceverträge öffentlich als (MEX) oder WSDL.

Wenn die obige Aussage zutrifft, sagen Sie mir, wann Sie MEX verwenden und wann Sie WSDL? verwenden.

  1. Wie kann ich mex deaktivieren und meinen Service nur über WSDL verfügbar machen?

  2. WSDL support all bidning like wshttp,wsdualhttp or tcp etc... Wenn möglich, besprechen Sie bitte ausführlich das Thema wsdl & mex.

AKTUALISIEREN

Du sagtest 

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.

Wollen Sie damit sagen, dass es in config keinen mex-Endpunkt-bezogenen Eintrag geben sollte und httpgetenable folgendermaßen aussehen würde?

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

Du sagtest 

Eine WSDL wird im Allgemeinen über http oder https get URLs bereitgestellt, die Sie nicht wirklich konfigurieren können (z. B. für Sicherheitsbeschränkungen oder für die Rückwärtskompatibilität von .__). MEX-Endpunkte machen Metadaten über .__ verfügbar. konfigurierbare Endpunkte und können verschiedene Transporttypen verwenden, wie TCP oder HTTP und verschiedene Arten von Sicherheitsmechanismen.

Sie sagten, dass Mex konfigurierbar ist, das Wsdl jedoch nicht. Was meinst du mit mex is configurable? Bitte besprechen Sie, welche Art von Konfiguration Mex unterstützt und wie diese konfiguriert werden kann.

Wenn ich httpGetEnabled="false" then the WSDL setze, kann ich nicht generieren?

34
Thomas

1) In älteren Web-Services erstellen wir einen Proxy mit wsdl. WSDL macht web Servicemetadaten. in wcf kommt ein anderer Begriff, der mex Endpunkt, der auch Metadaten verfügbar machen, aber wsdl ist noch in wcf. live, in wcf .__ neu. daher bin ich verwirrend, was ist der unterschied zwischen wsdl & mex Endpunkt?

Es ist ziemlich dasselbe, aber mex unterstützt Nicht-HTTP-Protokolle und erweiterte Konfigurations-/Sicherheitsszenarien. WSDL ist der alte Weg und MEX ist die neue verbesserte Version mit WCF.

2) Was bedeutet httpGetEnabled = "false" oder httpGetEnabled = "true"

Es werden Metadaten über wsdl über die URL für defautl verfügbar gemacht, auch wenn Sie keinen mex-Endpunkt für Ihren Service definiert haben.

3) Wenn ich httpGetEnabled = "false" setze, was passiert dann? heisst das kann dieser Client keine Dienstreferenz von der IDE hinzufügen? aber ich set httpGetEnabled = "false" und Säge-Client kann Dienstreferenz hinzufügen . Daher ist es sehr verwirrend für mich, dass httpGetEnabled falsch ist oder stimmt das?

Ein Client kann einen Verweis nur in VS hinzufügen, wenn httpGetEnabled/httpsGetEnabled aktiviert ist oder wenn Sie in der Konfiguration Ihres Diensts einen mex-Endpunkt definiert haben. Es empfiehlt sich, Metadaten zur Entwicklungsumgebung und nicht zur Produktion bereitzustellen. Sie können Ihre Serviceverträge auch über separate Baugruppen verteilen und ChannelFactory verwenden.

4) Ein Typ sagte: - MEX und WSDL sind zwei verschiedene Schemata, die zu unterscheiden sind potenzielle Kunden über die Struktur Ihrer Dienstleistung. Also kannst du Legen Sie fest, ob Sie Ihre Serviceverträge als (MEX) oder WSDL veröffentlichen wollen Wenn die obige Aussage wahr ist, dann sagen Sie mir, wann MEX verwendet wird und wann WSDL verwendet wird. 

Eine WSDL wird im Allgemeinen über http oder https get URLs bereitgestellt, die Sie nicht wirklich konfigurieren können (z. B. für Sicherheitsbeschränkungen oder für die Abwärtskompatibilität). MEX-Endpunkte machen Metadaten über konfigurierbare Endpunkte verfügbar und können verschiedene Arten von Transporten verwenden, z TCP oder HTTP und verschiedene Arten von Sicherheitsmechanismen.

MEX ist also besser konfigurierbar, während WSDL mit älteren Versionen von Clients und Nicht -.net-Clients, die mit WSDLs arbeiten, besser kompatibel ist.

5) Wie könnte ich mex deaktivieren und meinen Dienst nur durch WSDL verfügbar machen

Geben Sie in Ihrer Konfiguration keinen mex-Endpunkt an und verwenden Sie httpGetEnabled

6) WSDL unterstützt alle Gebote wie wshttp, wsdualhttp oder tcp etc ...

Das Freigeben von Metadaten unterscheidet sich grundlegend von dem Aufruf des Dienstes.

UPDATE

sie versuchen zu bedeuten, dass es keinen mit mex Endpunkt zusammenhängenden Eintrag geben soll in config und httpgetenable würde so aussehen

Ja, Sie müssen keinen mex-Endpunkt UND httpGetEnabled angeben. Nur eine ist erforderlich, um Metadaten verfügbar zu machen. Geben Sie nicht httpGetUrl an, da dies von Ihrer Hosting-Umgebung abhängt.

sie sagten, dass Mex konfigurierbar ist, Wsdl jedoch nicht. was du versuchst zu bedeuten mex ist konfigurierbar ... bitte besprechen Sie, welche Art von Konfiguration mex Support & Konfiguration.

MEX-Endpunkte sind spezielle Endpunkte, mit denen Clients die Metadaten des Dienstes mithilfe von SOAP - Nachrichten anstelle von HTTP-Get-Anforderungen erhalten können. Sie können einen MEX-Endpunkt erstellen, auf den über http, https, tcp und sogar Named Pipes zugegriffen werden kann. Mit HttpGetEnable können Sie Metadaten über die HTTP-GET-Methode verfügbar machen, normalerweise die Adresse des Dienstes mit dem Suffix "? Wsdl".

MEX und WSDL geben fast das gleiche aus.

In den meisten Fällen ist kein MEX-Endpunkt erforderlich. Die Verwendung von WSDLs mit http get ist in der Regel ausreichend.

Ich verstehe Ihre Absicht, diesen Teil zu verstehen, aber verbringen Sie nicht viel Zeit damit: Es gibt so viele andere komplizierte Funktionen!

54
Cybermaxs

MEX-Endpunkte sind spezielle Endpunkte, über die Clients die Metadaten des Dienstes mithilfe von SOAP - Nachrichten anstelle von nur http-Get-Anforderungen erhalten können (dh httpGetEnabled = "true"). Sie können einen MEX-Endpunkt erstellen, auf den über http, https, tcp und sogar Named Pipes zugegriffen werden kann.

Die Antwort, die Sie erhalten, wenn Sie die GetMetadata-Operation eines MEX-Endpunkts aufrufen, enthält den Inhalt der WSDL und alle damit verknüpften XSD-Dateien.

0
Taran