Veröffentlichen und Abrufen von Metadaten über eine benutzerdefinierte Bindung

System.ServiceModel.Description.ServiceMetadataBehavior bietet Support für das Hinzufügen von Metadatenendpunkten zu einem Dienst. Diese Metadatenendpunkte können auf HTTP GET-Anforderungen, die bei einer URL mit einer ?wsdl-Abfragezeichenfolge eingehen, und auf WS-Transfer-GET-Anforderungen wie in der WS-MetadataExchange (MEX)-Spezifikation definiert antworten. MEX-Endpunkte implementieren den System.ServiceModel.Description.IMetadataExchange-Vertrag.

Veröffentlichen von Metadaten über eine benutzerdefinierte Bindung

Die HTTP GET-Metadatenendpunkte und HTTPS GET-Metadatenendpunkte werden durch Festlegen der ServiceMetadataBehavior.HttpGetEnabled-Eigenschaften oder ServiceMetadataBehavior.HttpsGetEnabled-Eigenschaften auf true aktiviert. Die Bindungen für diese Endpunkte können nicht konfiguriert werden.

Der IMetadataExchange-Vertrag kann jedoch mit anderen Endpunkten verwendet werden – auch solchen, die benutzerdefinierte Bindungen verwenden – da IMetadataExchange-Endpunkte sich nicht von anderen WCF-Dienstendpunkten (Windows Communication Foundation) unterscheiden. 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.

Abrufen von Metadaten über eine benutzerdefinierte Bindung

Metadaten können von HTTP Get-Metadatenendpunkten und HTTPS Get-Metadatenendpunkten mit Standard-HTTP-Anforderungen bzw. HTTPS-GET-Anforderungen abgerufen werden.

Um Metadaten von einem MEX-Metadatenendpunkt abzurufen, können Sie im Allgemeinen eine der Standard-MEX-Bindungen verwenden, die von WCF unterstützt werden. Weitere Informationen finden Sie unter 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.

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. 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.

Sicherheit

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. 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. Das Beispiel Benutzerdefinierter sicherer Metadatenendpunkt veranschaulicht dieses Szenario.

Siehe auch