如何:使用配置文件发布服务的元数据

这是演示发布 Windows Communication Foundation (WCF) 服务的元数据的两个帮助主题之一。有两种方式可以指定服务应如何发布元数据:使用配置文件和使用代码。本主题演示如何使用配置文件发布服务的元数据。有关 使用代码发布元数据的更多信息,请参见如何:使用代码发布服务的元数据。通过发布元数据,客户端可以使用 WS-Transfer GET 请求或使用 ?wsdl 查询字符串的 HTTP/GET 来检索元数据。若要确保代码能够工作,必须创建一个基本的 WCF 服务。为了简单起见,将在以下代码中提供一个基本的自承载服务。

此服务为自承载服务,并且是使用配置文件配置的。本主题将从下面的配置文件开始。

使用应用程序配置文件发布 WCF 服务的元数据

  1. 在 App.config 文件内,在结束 </services> 元素之后创建 <behaviors> 元素。

  2. <behaviors> 元素内,添加一个 <serviceBehaviors> 元素。

  3. <serviceBehaviors> 元素中添加一个 <behavior> 元素,并为 <behavior> 元素的 name 属性指定一个值。

  4. <behavior> 元素中添加一个 <serviceMetadata> 元素。将 httpGetEnabled 属性设置为 true,并将 policyVersion 属性设置为 Policy15。httpGetEnabled 可让服务响应 HTTP GET 请求发出的元数据请求。policyVersion 通知服务在生成元数据时应符合 WS-Policy 1.5。

  5. behaviorConfiguration 属性添加到 <service> 元素中,并指定在步骤 1 中添加的 <behavior> 元素的 name 属性,如下面的代码示例中所示。

  6. 添加一个或多个 <endpoint> 元素并将协定设置为 IMetadataExchange,如下面的代码示例中所示。

  7. 对于在步骤 6 中添加的元数据终结点,将 binding 属性设置为下列值之一:

    • mexHttpBinding(对于 HTTP 发布)。
    • mexHttpsBinding(对于 HTTPS 发布)。
    • mexNamedPipeBinding(对于命名管道发布)。
    • mexTcpBinding(对于 TCP 发布)。
  8. 对于在步骤 6 中添加的元数据终结点,将地址设置为:

    • 一个空字符串,以在基址和元数据绑定相同的情况下将主机应用程序的基址用作发布点。
    • 一个相对地址,前提是主机应用程序具有一个基址。
    • 一个绝对地址
  9. 生成并运行控制台应用程序。

  10. 使用 Internet Explorer 浏览服务的基址(本示例中的 https://localhost:8001/MetadataSample)并验证是否已打开元数据发布。如果未显示上述内容,则结果页顶部会显示消息:“Metadata publishing for this service is currently disabled”(当前禁用服务的元数据发布)。

示例

下面的代码示例演示基本 WCF 服务的实现,以及发布服务的元数据的配置文件。

另请参见

任务

如何:在托管应用程序中承载 WCF 服务
如何:使用代码发布服务的元数据

参考

ServiceMetadataBehavior

概念

元数据体系结构概述
使用元数据

其他资源

Self-Host