Veröffentlichen und Abrufen von Metadaten über eine benutzerdefinierte BindungPublishing and Retrieving Metadata Over a Custom Binding

System.ServiceModel.Description.ServiceMetadataBehavior bietet Support für das Hinzufügen von Metadatenendpunkten zu einem Dienst.The System.ServiceModel.Description.ServiceMetadataBehavior provides support for adding metadata endpoint to a service. Diese Metadatenendpunkte können reagieren auf HTTP GET-Anforderungen an eine URL, die verfügt über eine ?wsdl Querystring und WS-Transfer GET-Anforderungen, wie in der WS-MetadataExchange (MEX)-Spezifikation definiert.These metadata endpoints can respond to HTTP GET requests at a URL that has a ?wsdl querystring and to WS-Transfer GET requests as defined in the WS-MetadataExchange (MEX) specification. MEX-Endpunkte implementieren den System.ServiceModel.Description.IMetadataExchange-Vertrag.MEX endpoints implement the System.ServiceModel.Description.IMetadataExchange contract.

Veröffentlichen von Metadaten über eine benutzerdefinierte BindungPublishing Metadata Over a Custom Binding

Die HTTP GET-Metadatenendpunkte und HTTPS GET-Metadatenendpunkte werden durch Festlegen der ServiceMetadataBehavior.HttpGetEnabled-Eigenschaften oder ServiceMetadataBehavior.HttpsGetEnabled-Eigenschaften auf true aktiviert.The HTTP GET metadata endpoints and HTTPS GET metadata endpoints are enabled by setting the ServiceMetadataBehavior.HttpGetEnabled or ServiceMetadataBehavior.HttpsGetEnabled properties to true. Die Bindungen für diese Endpunkte können nicht konfiguriert werden.The bindings for these endpoints cannot be configured.

Die IMetadataExchange Vertrag, aber kann verwendet werden, mit anderen Endpunkten, auch solche, die benutzerdefinierte Bindungen verwenden, da IMetadataExchange Endpunkte sind identisch mit anderen Windows Communication Foundation (WCF)-Dienstendpunkt.The IMetadataExchange contract, however, can be used with any endpoint, including those that use custom bindings, because IMetadataExchange endpoints are identical to any other Windows Communication Foundation (WCF) service endpoint. Wenn Sie wissen, wie Sie die Konfiguration einer vom System bereitgestellten Bindung ändern können oder wie Sie eine System.ServiceModel.Channels.CustomBinding konfigurieren können, dann können Sie eine Bindung so konfigurieren, dass sie mit einem IMetadataExchange-Endpunkt verwendet werden kann.If you know how to modify the configuration of a system-provided binding, or you know how to configure a System.ServiceModel.Channels.CustomBinding, then you can configure a binding for use with an IMetadataExchange endpoint.

Abrufen von Metadaten über eine benutzerdefinierte BindungRetrieving Metadata Over a Custom Binding

Metadaten können von HTTP Get-Metadatenendpunkten und HTTPS Get-Metadatenendpunkten mit Standard-HTTP-Anforderungen bzw. HTTPS-GET-Anforderungen abgerufen werden.Metadata can be retrieved from HTTP Get and HTTPS Get metadata endpoints using standard HTTP or HTTPS GET requests.

Zum Abrufen von Metadaten von einem MEX-Metadatenendpunkt eine der von WCF unterstützten standard-MEX-Bindungen in der Regel verwenden können.To retrieve metadata from a MEX metadata endpoint you can generally use one of the standard MEX bindings supported by WCF. Weitere Informationen finden Sie unter System.ServiceModel.Description.MetadataExchangeBindings.For more information, see System.ServiceModel.Description.MetadataExchangeBindings. Der System.ServiceModel.Description.MetadataExchangeClient-Typ und das Tool "Svcutil.exe" wählen automatisch eine dieser Standard-MEX-Bindungen basierend auf der Adresse des angegebenen Metadatenendpunkts aus.The System.ServiceModel.Description.MetadataExchangeClient type and the Svcutil.exe tool automatically select one of these standard MEX bindings based on the address of the specified metadata endpoint.

Wenn ein MEX-Metadatenendpunkt eine andere Bindung als eine der Standard-MEX-Bindungen verwendet, können Sie die vom MetadataExchangeClient verwendete Bindung mit Code oder über die Angabe einer IMetadataExchange-Clientendpunktkonfiguration konfigurieren.If a MEX metadata endpoint uses a different binding than one of the standard MEX bindings, you can configure the binding used by the MetadataExchangeClient using code or by providing an IMetadataExchange client endpoint configuration. Das Tool Svcutil.exe lädt automatisch aus der Konfigurationsdatei eine IMetadataExchange-Clientendpunktkonfiguration, die den gleichen Namen hat wie das URI-Schema für die Metadatenendpunktadresse.The Svcutil.exe tool automatically loads from its configuration file an IMetadataExchange client endpoint configuration that has the same name as the URI scheme for the metadata endpoint address.

SicherheitSecurity

Stellen Sie beim Veröffentlichen von Metadaten über eine benutzerdefinierte Bindung sicher, dass die Bindung den Sicherheitssupport bietet, der für die Metadaten erforderlich ist.When publishing metadata over a custom binding, ensure that the binding provides the security support that your metadata requires. Um beispielsweise die Offenlegung von Informationen zu verhindern und sicherzustellen, dass der Client die Berechtigung hat, die Metadaten abzurufen, können Sie die Metadaten und die Anwendung weiter sichern, indem Sie den IMetadataExchange-Endpunkt so konfigurieren, dass eine Authentifizierung und Verschlüsselung notwendig sind.For example, to prevent information disclosure and ensure your client has the right to obtain the metadata, you can make your metadata and your application more secure by configuring your IMetadataExchange endpoint to require authentication and encryption. Im Beispiel benutzerdefinierter sicherer Metadatenendpunkt wird dieses Szenario veranschaulicht.The sample Custom Secure Metadata Endpoint demonstrates this scenario.

Siehe auchSee Also

Sichern von DienstenSecuring Services
WS-MetadataExchange-BindungenWS-MetadataExchange Bindings
Vorgehensweise: Konfigurieren einer benutzerdefinierten WS-Metadata Exchange-BindungHow to: Configure a Custom WS-Metadata Exchange Binding
Vorgehensweise: Abrufen von Metadaten über eine Nicht-MEX-BindungHow to: Retrieve Metadata Over a non-MEX Binding