Was ist der Nutzen und die Wichtigkeit von IMetadataExchange in WCF?
Ich habe die folgende app.config-Datei, in der ich IMetadataExchange
endpoint nicht verwende, aber ich kann immer noch meinen Proxy-Client erstellen. Ich habe gelesen, dass AddServiceReference nicht funktioniert, wenn ich den Endpunkt IMetadataExchange
nicht verwende, da mein Dienst die Metadaten nicht verfügbar macht. Wie funktioniert es, ohne den Endpunkt IMetadataExchange
anzuzeigen?
IMetadataExchange-Schnittstelle Macht Methoden verfügbar, mit denen Metadaten über einen Service zurückgegeben werden . Bei der Programmierung von Windows Communication Foundation-Diensten (WCF) ist es hilfreich, Metadaten zu dem Dienst zu veröffentlichen. Beispielsweise können Metadaten ein WSDL-Dokument (Web Services Description Language) sein, das alle von einem Dienst verwendeten Methoden und Datentypen beschreibt. Durch das Zurückgeben von Metadaten zu einem WCF-Dienst können Benutzer eines Dienstes problemlos Clients für den Dienst erstellen.
ArsenMkrt hat die formelle Antwort. Einfach ausgedrückt:
Um Ihre Frage genauer zu beantworten, haben Sie diese Zeile in Ihrem Dienst:
%Vor%Was auf diese Konfiguration hinweist
%Vor%Dies könnte der Grund sein, warum es immer noch funktioniert, obwohl ich dachte, dass Sie den MEX-Endpunkt angeben müssen.
Der Unterschied ist:
%Vor% Mitkönnen Sie Metadaten mithilfe des HTTP Protokolls abrufen.
%Vor% Mitkönnen Sie Metadaten mithilfe des ws-metadata-Protokolls abrufen.
Nur & lt; serviceMetadata httpGetEnabled="true" / & gt; funktioniert, aber nicht alle Clients können Sie anrufen (weil sie keine Metadaten abrufen können, um einen Proxy zu erstellen).
Der Standard besteht darin, beide zu veröffentlichen.
Siehe auch ServiceMetadataBehavior-Klasse (MSDN).
Ohne IMetadataExchange stellt ein WCF-Dienst die Metadateninformationen dem Client zur Verfügung, aber WCF garantiert nicht, dass die Metadaten verfügbar gemacht werden, da WCF standardmäßig Funktionen zum Aussetzen der Metadaten für den Client bereitstellt.
Die Bereitstellung der Metadaten erfolgt in einer standardisierten Weise über IMetadataExchange. Die IMetadataExchange-Schnittstelle folgt dem Industriestandard.
Tags und Links wcf