Welche Bedeutung hat IMetadataExchange in WCF?

7

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?

%Vor%     
Embedd_Khurja 22.10.2009, 08:17
quelle

4 Antworten

7

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.

    
Arsen Mkrtchyan 22.10.2009, 08:20
quelle
12

ArsenMkrt hat die formelle Antwort. Einfach ausgedrückt:

  • Wenn Sie es nicht haben, funktioniert das Hinzufügen einer Service-Referenz nicht
  • Sie sollten es von Produktionsservern löschen, damit ein Hacker keine Service-Referenz hinzufügen kann

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.

    
Shiraz Bhaiji 22.10.2009 08:23
quelle
6

Der Unterschied ist:

%Vor% Mit

können Sie Metadaten mithilfe des HTTP Protokolls abrufen.

%Vor% Mit

kö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).

    
daniel 30.11.2010 13:52
quelle
0

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.

    
Arvind Kumar 10.08.2014 07:59
quelle

Tags und Links