通过自定义绑定发布和检索元数据
System.ServiceModel.Description.ServiceMetadataBehavior 提供对向服务添加元数据终结点的支持。 这些元数据终结点可对具有 ?wsdl
QueryString 的 URL 处的 HTTP GET 请求作出响应,并可对在 WS-MetadataExchange (MEX) 规范中定义的 WS-Transfer GET 请求作出响应。 MEX 终结点可实现 System.ServiceModel.Description.IMetadataExchange 协定。
通过自定义绑定发布元数据
通过将 ServiceMetadataBehavior.HttpGetEnabled 或 ServiceMetadataBehavior.HttpsGetEnabled 属性设置为 true
,可以启用 HTTP GET 元数据终结点和 HTTPS GET 元数据终结点。 无法配置这些终结点的绑定。
不过,IMetadataExchange 协定可与任何终结点(包括使用自定义绑定的终结点)一起使用,这是因为 IMetadataExchange 终结点与任何其他 Windows Communication Foundation (WCF) 服务终结点相同。 如果您了解如何修改系统提供的绑定的配置,或者了解如何配置 System.ServiceModel.Channels.CustomBinding,则可以将绑定配置为与 IMetadataExchange 终结点一起使用。
通过自定义绑定检索元数据
可以从 HTTP Get 和 HTTPS Get 元数据终结点使用标准 HTTP 或 HTTPS GET 请求检索元数据。
若要从 MEX 元数据终结点检索元数据,你通常可以使用 WCF 所支持的标准 MEX 绑定之一。 有关详细信息,请参阅 System.ServiceModel.Description.MetadataExchangeBindings。 System.ServiceModel.Description.MetadataExchangeClient 类型和 Svcutil.exe 工具将根据指定元数据终结点的地址自动选择这些标准 MEX 绑定之一。
如果 MEX 元数据终结点使用与标准 MEX 绑定之一不同的其他绑定,则您可以使用代码或通过提供 MetadataExchangeClient 客户端终结点配置来配置由 IMetadataExchange 所使用的绑定。 Svcutil.exe 工具可自动从其配置文件中加载一个 IMetadataExchange 客户端终结点配置,该配置具有与元数据终结点地址的 URI 方案相同的名称。
安全性
通过自定义绑定发布元数据时,请确保该绑定提供你的元数据所要求的安全支持。 例如,若要防止信息泄漏,并确保客户端具有获取元数据的权限,您可以通过将 IMetadataExchange 终结点配置为要求身份验证和加密的方式使元数据和应用程序更加安全。 示例自定义安全元数据终结点演示了这种情况。