如何:使用代码发布服务的元数据

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

在代码中发布元数据

  1. 在控制台应用程序的主方法中,通过传入服务类型和基址来实例化 ServiceHost 对象。

  2. 紧接在步骤 1 的代码下面创建一个 try 块,这将捕获在服务运行过程中引发的任何异常。

  3. 检查服务主机是否已经包含一个 ServiceMetadataBehavior,如果没有,则创建一个新的 ServiceMetadataBehavior 实例。

  4. HttpGetEnabled 属性设置为 true

  5. ServiceMetadataBehavior 包含一个 MetadataExporter 属性。MetadataExporter 包含一个 PolicyVersion 属性。将 PolicyVersion 属性的值设置为 Policy15。还可以将 PolicyVersion 属性设置为 Policy12。当设置为 Policy15 时,元数据导出程序会使用符合 WS-Policy 1.5 的元数据生成策略信息。当设置为 Policy12 时,元数据导出程序会生成符合 WS-Policy 1.2 的策略信息。

  6. ServiceMetadataBehavior 实例添加到服务主机的行为集合。

  7. 将元数据交换终结点添加到服务主机。

  8. 将应用程序终结点添加到服务主机。

  9. 打开服务主机并等待传入调用。当用户按 Enter 时,关闭服务主机。

  10. 生成并运行控制台应用程序。

  11. 使用 Internet Explorer 浏览服务的基址(本示例中的 https://localhost:8001/MetadataSample)并验证是否已打开元数据发布。您应会看到一个网页,该网页顶部显示“Simple Service”(简单服务),其下面紧接着显示“You have created a service”(已经创建服务)。如果未显示上述内容,则结果页顶部会显示消息:“Metadata publishing for this service is currently disabled”(当前禁用服务的元数据发布)。

示例

下面的代码示例演示如何在代码中实现发布服务的元数据的基本 WCF 服务。

另请参见

任务

如何:在托管应用程序中承载 WCF 服务
如何:使用配置文件发布服务的元数据

概念

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

其他资源

Self-Host