通过自定义绑定发布和检索元数据

System.ServiceModel.Description.ServiceMetadataBehavior 提供对向服务添加元数据终结点的支持。 这些元数据终结点可以在具有 ?wsdl 查询字符串的 URL 上响应 HTTP GET 请求,并根据 WS-MetadataExchange (MEX) 规范响应 WS-Transfer GET 请求。 MEX 终结点可实现 System.ServiceModel.Description.IMetadataExchange 协定。

通过自定义绑定发布元数据

通过设置ServiceMetadataBehavior.HttpGetEnabledServiceMetadataBehavior.HttpsGetEnabled属性为true来启用 HTTP GET 元数据终结点和 HTTPS GET 元数据终结点。 无法配置这些终结点的绑定。

但是,协定 IMetadataExchange 可与任何终结点一起使用,包括那些使用自定义绑定的终结点,因为 IMetadataExchange 终结点与任何其他 Windows Communication Foundation (WCF) 服务终结点相同。 如果您了解如何修改系统提供的绑定的配置,或者了解如何配置 System.ServiceModel.Channels.CustomBinding,则可以将绑定配置为与 IMetadataExchange 终结点一起使用。

通过自定义绑定检索元数据

可以使用标准的 HTTP get 或 HTTPS get 请求从 HTTP 和 HTTPS 的元数据终结点检索元数据。

若要从 MEX 元数据终结点检索元数据,通常可以使用 WCF 支持的标准 MEX 绑定之一。 有关详细信息,请参阅 System.ServiceModel.Description.MetadataExchangeBindingsSystem.ServiceModel.Description.MetadataExchangeClient 类型和 Svcutil.exe 工具根据指定的元数据终结点地址自动选择其中之一的标准 MEX 绑定。

如果 MEX 元数据终结点使用与标准 MEX 绑定之一不同的其他绑定,则您可以使用代码或通过提供 MetadataExchangeClient 客户端终结点配置来配置由 IMetadataExchange 所使用的绑定。 Svcutil.exe 工具会自动从其配置文件加载客户端 IMetadataExchange 终结点配置,该配置的名称与元数据终结点地址的 URI 方案相同。

安全

通过自定义绑定发布元数据时,请确保绑定提供元数据所需的安全支持。 例如,为了防止信息泄露并确保客户端有权获取元数据,可以通过配置 IMetadataExchange 终结点来要求身份验证和加密,使元数据和应用程序更安全。 示例 自定义安全元数据终结点 演示了此方案。

另请参阅