Was ist "mexHttpBinding"?

77

Was ist "mexHttpBinding" in WCF? Wann sollte diese Bindung gegenüber anderen Bindungen bevorzugt verwendet werden?

Craig Schwarze
quelle

Antworten:

71

Es ist eine Bindung, die Metadaten zurückgibt, damit Sie auf der Clientseite einen Proxy erstellen können. Siehe hier . Mehr auch hier .

Otávio Décio
quelle
2
Gibt es also zwei Endpunkte in einem WCF-Dienst - den Standard- und einen Metadatenendpunkt?
Craig Schwarze
11
Sie können beliebig viele Endpunkte für denselben Vertrag haben, darunter mexHttpBinding, das Metadaten bereitstellt und in den meisten Fällen in der Produktion deaktiviert ist.
Otávio Décio
1
Es kann viele verschiedene Endpunkte in einem WCF-Dienst geben, mit verschiedenen Arten von Bindungen und verschiedenen Adressen.
Codekaizen
Metadatenendpunkte werden also durch die Adresse "mex" identifiziert?
Craig Schwarze
2
@CraigS: Die Endpunkte für den Metadatenaustausch sind solche mit einem Vertrag von IMetadataExchange- das ist der entscheidende Faktor. Es ist ein Systemvertrag, den WCF für den Metadatenaustausch bereitstellt. Die Adresse ist völlig irrelevant, "mex" ist nur eine häufig verwendete Best Practice, aber keineswegs eine Anforderung
marc_s
35

mexHTTPBinding ermöglicht die Verwendung von WS-MetadataExchange über HTTP. Sie benötigen es nur, wenn Sie Richtlinien implementiert haben, die sich im Laufe der Zeit ändern können, und Sie Ihren Dienst beispielsweise mit UDDI ermitteln müssen

Viele Leute sagen, dass es für die Erstellung clientseitiger Proxys erforderlich ist. Das ist nicht wahr. Für clientseitige Proxys müssen Sie WSDL veröffentlichen. Sie können dies tun, indem Sie in Ihrem Serviceverhalten angeben.

Kurz, du weißt es nicht -> du brauchst es nicht.

Rosencreuz
quelle
Dieser Artikel besagt, dass sowohl wsdl als auch mex für den Austausch von Metadaten mit dem Client bestimmt sind ... abhishekdv.wordpress.com/2013/05/24/mexhttpbinding-vs-wsdl ....
user2463514
1

mexHttpBinding wird beim Hinzufügen einer neuen Dienstreferenz in einem Projekt in Visual Studio 2013 (DEBUG) verwendet, die Ihren WebService verbraucht (Bereitstellung der mexHttpBinding). Nachdem Sie die Dienstreferenz erfolgreich hinzugefügt haben, können Sie die mexHttpBinding deaktivieren.

Dies alles wird in der App.config beschrieben, wenn Sie ein WCF-Servicebibliotheksprojekt in Visual Studio 2013 erstellen (Lösung >> Neues Projekt hinzufügen >> Visual C # >> WCF >> WCF-Servicebibliothek).

Himmelsfrosch
quelle