发布元数据

Windows Communication Foundation (WCF) 服务通过发布一个或多个元数据终结点来发布元数据。 发布服务元数据之后,可以通过标准协议(如 WS-MetadataExchange (MEX) 和 HTTP/GET 请求)来使用该元数据。 元数据终结点类似于其他服务终结点,因为它们都有一个地址、一个绑定和一个协定,并且它们都可通过配置或命令代码添加到服务主机。

发布元数据终结点

若要发布 WCF 服务的终结点,首先必须将 ServiceMetadataBehavior 服务行为添加到该服务。 添加一个 System.ServiceModel.Description.ServiceMetadataBehavior 实例将允许服务公开元数据终结点。 添加 System.ServiceModel.Description.ServiceMetadataBehavior 服务行为之后,就可以公开支持 MEX 协议或响应 HTTP/GET 请求的元数据终结点。

System.ServiceModel.Description.ServiceMetadataBehavior 使用 WsdlExporter 来导出服务中所有服务终结点的元数据。 有关从服务导出元数据的详细信息,请参阅导出和导入元数据

System.ServiceModel.Description.ServiceMetadataBehavior 添加一个 ServiceMetadataExtension 实例作为服务主机的扩展。 System.ServiceModel.Description.ServiceMetadataExtension 提供了元数据发布协议的实现。 还可以使用 System.ServiceModel.Description.ServiceMetadataExtension 通过访问 ServiceMetadataExtension.Metadata 属性来在运行时获取服务的元数据。

MEX 元数据终结点

要添加使用 MEX 协议的元数据终结点,请将服务终结点添加到使用 IMetadataExchange 服务协定的服务主机。 WCF 包括 IMetadataExchange 接口以及此服务协定名称,可以将此名称用作 WCF 编程模型的一部分。 WS-MetadataExchange 终结点,即 MEX 终结点,可以使用静态工厂方法在 MetadataExchangeBindings 类中公开的四种默认绑定之一来匹配 Svcutil.exe 之类的 WCF 工具所使用的默认绑定。 还可以使用自己的自定义绑定来配置 MEX 元数据终结点。

HTTP GET 元数据终结点

若要将元数据终结点添加到响应 HTTP/GET 请求的服务,请将 HttpGetEnabledSystem.ServiceModel.Description.ServiceMetadataBehavior 属性设置为 true。 将 HttpsGetEnabledSystem.ServiceModel.Description.ServiceMetadataBehavior 属性设置为 true 还可以配置使用 HTTPS 的元数据终结点。

本节内容

如何:使用配置文件发布服务的元数据
演示如何配置 WCF 服务来发布元数据,以使客户端可使用 WS-MetadataExchange 或包含 ?wsdl 查询字符串的 HTTP/GET 请求来检索元数据。

如何:使用代码发布服务的元数据
演示如何在代码中为 WCF 服务启用元数据发布,以使客户端可使用 WS-MetadataExchange 或包含 ?wsdl 查询字符串的 HTTP/GET 请求来检索元数据。

参考

ServiceMetadataBehavior

IMetadataExchange

ServiceMetadataExtension

MetadataExchangeBindings

请参阅