Veröffentlichen von MetadatenPublishing Metadata

Windows Communication Foundation (WCF)-Dienste veröffentlichen Metadaten, indem Sie eine oder mehrere Metadatenendpunkte veröffentlichen.Windows Communication Foundation (WCF) services publish metadata by publishing one or more metadata endpoints. Die Veröffentlichung von Dienstmetadaten macht die Metadaten über die Nutzung standardisierter Protokolle verfügbar, z. B. WS-MetadataExchange (MEX) und HTTP/GET-Anforderungen.Publishing service metadata makes the metadata available using standardized protocols, such as WS-MetadataExchange (MEX) and HTTP/GET requests. 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.Metadata endpoints are similar to other service endpoints in that they have an address, a binding, and a contract, and they can be added to a service host through configuration or imperative code.

Veröffentlichen von MetadatenendpunktenPublishing Metadata Endpoints

Um Metadatenendpunkte für einen WCF-Dienst veröffentlichen, zunächst müssen Sie Hinzufügen der ServiceMetadataBehavior -Dienstverhalten zum Dienst.To publish metadata endpoints for a WCF service, you first must add the ServiceMetadataBehavior service behavior to the service. Das Hinzufügen einer System.ServiceModel.Description.ServiceMetadataBehavior-Instanz ermöglicht es dem Dienst, Metadatenendpunkte verfügbar zu machen.Adding a System.ServiceModel.Description.ServiceMetadataBehavior instance allows your service to expose metadata endpoints. 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.Once you add the System.ServiceModel.Description.ServiceMetadataBehavior service behavior, you can then expose metadata endpoints that support the MEX protocol or that respond to HTTP/GET requests.

Das System.ServiceModel.Description.ServiceMetadataBehavior verwendet einen WsdlExporter, um Metadaten für alle Dienstendpunkte in den Dienst zu exportieren.The System.ServiceModel.Description.ServiceMetadataBehavior uses a WsdlExporter to export metadata for all service endpoints in your service. Weitere Informationen zum Exportieren von Metadaten von einem Dienst finden Sie unter exportieren und Importieren von Metadaten.For more information about exporting metadata from a service, see Exporting and Importing Metadata.

Das System.ServiceModel.Description.ServiceMetadataBehavior fügt dem Diensthost eine ServiceMetadataExtension-Instanz als Erweiterung hinzu.The System.ServiceModel.Description.ServiceMetadataBehavior adds a ServiceMetadataExtension instance as an extension to your service host. Die System.ServiceModel.Description.ServiceMetadataExtension stellt die Implementierung für die Metadaten bereit, die Protokolle veröffentlichen.The System.ServiceModel.Description.ServiceMetadataExtension provides the implementation for the metadata publishing protocols. Sie können darüber hinaus System.ServiceModel.Description.ServiceMetadataExtension verwenden, um die Metadaten des Diensts bei Laufzeit abzurufen, indem Sie auf die ServiceMetadataExtension.Metadata-Eigenschaft zugreifen.You can also use the System.ServiceModel.Description.ServiceMetadataExtension to get the service's metadata at runtime by accessing the ServiceMetadataExtension.Metadata property.

MEX-MetadatenendpunkteMEX Metadata Endpoints

Fügen Sie Dienstendpunkte zum Diensthost hinzu, die den Dienstvertrag IMetadataExchange verwenden, um Metadatenendpunkte hinzuzufügen, die das MEX-Protokoll verwenden.To add metadata endpoints that use the MEX protocol, add service endpoints to your service host that use the IMetadataExchange service contract. WCF bietet eine IMetadataExchange Schnittstelle mit diesem dienstvertragnamen, die als Teil der WCF-Programmiermodell verwendet werden können.WCF includes an IMetadataExchange interface with this service contract name that you can use as part of the WCF programming model. WS-MetadataExchange-Endpunkte oder MEX-Endpunkte können eine der vier standardbindungen nutzen, die die statischen Factorymethoden auf verfügbar machen die MetadataExchangeBindings Klasse, um die standardbindungen von WCF-Tools wie Svcutil.exe verwendet wird.WS-MetadataExchange endpoints, or MEX endpoints, can use one of the four default bindings that the static factory methods expose on the MetadataExchangeBindings class to match the default bindings used by WCF tools such as Svcutil.exe. Sie können auch MEX-Metadatenendpunkte mithilfe einer eigenen benutzerdefinierten Bindung konfigurieren.You can also configure MEX metadata endpoints using your own custom binding.

HTTP-GET-MetadatenendpunkteHTTP GET Metadata Endpoints

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.To add a metadata endpoint to your service that responds to HTTP/GET requests, set the HttpGetEnabled property on the System.ServiceModel.Description.ServiceMetadataBehavior to true. 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.You can also configure a metadata endpoint that uses HTTPS by setting the HttpsGetEnabled property on the System.ServiceModel.Description.ServiceMetadataBehavior to true.

In diesem AbschnittIn This Section

Vorgehensweise: Veröffentlichen von Metadaten für einen Dienst mithilfe einer KonfigurationsdateiHow to: Publish Metadata for a Service Using a Configuration File
Veranschaulicht das Konfigurieren eines WCF-Diensts zum Veröffentlichen von Metadaten, sodass Clients Metadaten über WS-MetadataExchange oder eine HTTP/GET-Anforderung mithilfe abgerufen werden kann die ?wsdl einer Abfragezeichenfolge.Demonstrates how to configure a WCF service to publish metadata so that clients can retrieve the metadata using a WS-MetadataExchange or an HTTP/GET request using the ?wsdl query string.

Vorgehensweise: Veröffentlichen von Metadaten für einen Dienst über CodeHow to: Publish Metadata for a Service Using Code
Veranschaulicht das Veröffentlichen von Metadaten für einen WCF-Dienst im Code zu aktivieren, sodass Clients Metadaten über WS-MetadataExchange oder eine HTTP/GET-Anforderung mithilfe abgerufen werden kann die ?wsdl einer Abfragezeichenfolge.Demonstrates how to enable metadata publishing for a WCF service in code so that clients can retrieve the metadata using a WS-MetadataExchange or an HTTP/GET request using the ?wsdl query string.

ReferenzReference

ServiceMetadataBehavior

IMetadataExchange

ServiceMetadataExtension

MetadataExchangeBindings

Siehe auchSee Also

Exportieren und Importieren von MetadatenExporting and Importing Metadata