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 请求的服务添加元数据终结点,请将 HttpGetEnabled 属性 System.ServiceModel.Description.ServiceMetadataBehavior 设置为 true
。 将 HttpsGetEnabled 的 System.ServiceModel.Description.ServiceMetadataBehavior 属性设置为 true
还可以配置使用 HTTPS 的元数据终结点。
本节中
如何:使用配置文件发布服务的元数据
演示如何将 WCF 服务配置为发布元数据,以便客户端可以使用查询字符串使用 WS-MetadataExchange 或 HTTP/GET 请求 ?wsdl
检索元数据。
如何:使用代码发布服务的元数据
演示如何在代码中为 WCF 服务启用元数据发布,以便客户端可以使用查询字符串使用 WS-MetadataExchange 或 HTTP/GET 请求 ?wsdl
检索元数据。