Veröffentlichen von Metadaten

Windows Communication Foundation (WCF)-Dienste veröffentlichen Metadaten, indem sie einen oder mehrere Metadatenendpunkte veröffentlichen. Die Veröffentlichung von Dienstmetadaten macht die Metadaten über die Nutzung standardisierter Protokolle verfügbar, z. B. WS-MetadataExchange (MEX) und HTTP/GET-Anforderungen. Metadatenendpunkte sind anderen Dienstendpunkten dahingehend ähnlich, dass sie über eine Adresse, eine Bindung und einen Vertrag verfügen und sie per Konfiguration oder in einem imperativen Code zu einem Diensthost hinzugefügt werden können.

Veröffentlichen von Metadatenendpunkten

Um Metadatenendpunkte für einen WCF-Dienst zu veröffentlichen, müssen Sie zunächst das ServiceMetadataBehavior-Dienstverhalten zum Dienst hinzufügen. Das Hinzufügen einer System.ServiceModel.Description.ServiceMetadataBehavior-Instanz ermöglicht es dem Dienst, Metadatenendpunkte verfügbar zu machen. Sobald Sie das System.ServiceModel.Description.ServiceMetadataBehavior-Dienstverhalten hinzufügen, können Sie Metadatenendpunkte verfügbar machen, die das MEX-Protokoll unterstützen oder auf die HTTP/GET-Anforderungen antworten.

Das System.ServiceModel.Description.ServiceMetadataBehavior nutzt WsdlExporter, um Metadaten für alle Dienstendpunkte in Ihren Dienst zu exportieren. Weitere Informationen über zum Export von Metadaten aus einem Dienst finden Sie unter Exportieren und Importieren von Metadaten.

Das System.ServiceModel.Description.ServiceMetadataBehavior fügt dem Diensthost eine ServiceMetadataExtension-Instanz als Erweiterung hinzu. Die System.ServiceModel.Description.ServiceMetadataExtension stellt die Implementierung für die Metadaten bereit, die Protokolle veröffentlichen. Sie können darüber hinaus System.ServiceModel.Description.ServiceMetadataExtension verwenden, um die Metadaten des Diensts bei Laufzeit abzurufen, indem Sie auf die System.ServiceModel.Description.ServiceMetadataExtension.Metadata-Eigenschaft zugreifen.

MEX-Metadatenendpunkte

Um Metadatenendpunkte hinzuzufügen, die das MEX-Protokoll verwenden, fügen Sie Dienstendpunkte zu Ihrem Diensthost hinzu, die den IMetadataExchange-Dienstvertrag nutzen. WCF enthält eine IMetadataExchange-Schnittstelle mit diesem Dienstvertragnamen, die Sie als Teil des WCF-Programmierungsmodells verwenden können. WS-MetadataExchange-Endpunkte oder MEX-Endpunkte können eine der vier Standardbindungen nutzen, die von den statischen Factorymethoden auf der MetadataExchangeBindings-Klasse verfügbar gemacht werden, sodass eine Anpassung auf die von den WCF-Tools, wie Svcutil.exe, verwendeten Standardbindungen erreicht wird. Sie können auch MEX-Metadatenendpunkte mithilfe einer eigenen benutzerdefinierten Bindung konfigurieren.

HTTP-GET-Metadatenendpunkte

Zum Hinzufügen eines Metadatenendpunkts zu Ihrem Dienst, der auf HTTP/GET-Anforderungen antwortet, legen Sie die HttpGetEnabled-Eigenschaft auf dem System.ServiceModel.Description.ServiceMetadataBehavior auf true fest. Darüber hinaus können Sie einen Metadatenendpunkt konfigurieren, der HTTPS verwendet, indem Sie die HttpsGetEnabled-Eigenschaft auf dem System.ServiceModel.Description.ServiceMetadataBehavior auf true festlegen.

In diesem Abschnitt

Referenz

ServiceMetadataBehavior

IMetadataExchange

ServiceMetadataExtension

MetadataExchangeBindings

Siehe auch

Konzepte

Exportieren und Importieren von Metadaten