生成 Windows Communication Foundation 示例

可以使用 Visual Studio IDE 或命令行中的 msbuild 命令生成 Windows Communication Foundation (WCF)示例。 本文中对这两种过程均有描述。

注释

在生成或运行任何 WCF 示例之前,请确保已 为 Windows Communication Foundation 示例执行One-Time 安装过程

使用命令提示生成示例

  1. 打开 Visual Studio 的开发人员命令提示符,并导航到安装示例的目录位置下的特定于语言的子目录。

  2. 请在命令行输入 msbuild。 客户端程序文件生成为 client\bin ,服务程序文件生成为 service\bin。 如果服务由 Internet Information Services (IIS)托管,则服务程序文件也会复制到 servicemodelsamples 目录及其 \bin 子目录。

注释

必须在 %systemdrive%\inetpub\wwwroot 上设置 ACL,以授予对正在运行的帐户的修改权限。 否则,某些后期生成事件将失败。 或者,你可以保持ACL原样,并以管理员身份运行SDK命令提示符。

使用 Visual Studio 生成示例

  1. 在 Visual Studio 的“ 文件” 菜单中,选择“ 打开>项目/解决方案”。 导航到安装示例的目录下的特定于语言的子目录,然后双击.sln文件图标以在 Visual Studio 中打开解决方案。

  2. 在“ 生成 ”菜单中,选择“ 重新生成解决方案”。

    客户端程序文件生成到client\bin,服务端程序文件生成到service\bin。 如果服务托管在 IIS 中,服务程序文件也会复制到 servicemodelsamples 目录及其 \bin 子目录。

注释

必须在 %systemdrive%\inetpub\wwwroot 上设置 ACL,以授予对正在运行的帐户的修改权限。 否则,某些后期生成事件将失败。 或者,您可以保持 ACL 不变,并以管理员身份运行 SDK 命令提示符或 Visual Studio。 某些 Visual Studio作(例如将调试器附加到 ASP.NET 工作进程)也需要管理权限。

设置 Batch 文件和脚本

应从 Visual Studio 的开发人员命令提示符运行 Setup.exe 和 Cleanup.exe 批处理文件和脚本。 多个设置和清理文件执行需要管理权限的任务,应使用管理员权限启动。

有关元数据终结点的重要安全信息

为防止意外泄露潜在的敏感服务元数据,Windows Communication Foundation (WCF) 服务的默认配置会禁用元数据发布。 默认情况下,此行为是安全的,但也意味着不能使用元数据导入工具(如 Svcutil.exe)生成调用服务所需的客户端代码,除非在配置中显式启用服务的元数据发布行为。 为了简化对示例的试验,几乎所有示例都会公开不安全的元数据发布终结点。 此类终结点可能可供匿名未经身份验证的使用者使用,在部署此类终结点之前必须小心,以确保公开披露服务的元数据是适当的。 有关发布服务元数据的详细信息,请参阅 元数据发布行为 示例。 有关保护元数据终结点的示例,请参阅 自定义安全元数据终结点 示例。

异常处理

一般来说,这些示例不包括异常处理,以保持代码专注于示例的主题。 有关异常处理的详细信息,请参阅 预期异常 示例。

使用 Svcutil 重新生成客户端和配置

可以使用 ServiceModel 元数据实用工具工具(Svcutil.exe) 为大多数示例重新生成客户端代码和配置。 某些示例需要手动编辑的配置。 例如,如果使用 Svcutil.exe 重新生成使用客户端证书凭据的示例的配置,则必须手动指定以前配置的凭据。 某些示例使用特定的 Svcutil.exe 选项来影响生成的代码,这些选项在特定的示例主题中指定。

重新生成客户端和配置文件

  1. 打开 SDK 命令提示符,导航到安装示例的目录位置下的特定于语言的子目录。

  2. 如果服务是 Web 托管的类型,请使用以下命令。

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /out:generatedClient.cs
    

    如果服务是自托管类型,请输入以下命令。

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /out:generatedClient.cs
    

    http://localhost:8000/ServiceModelSamples/service.svc/mex 替换为自托管服务的 mex 终结点地址。

    若要在 Visual Basic 类型中生成客户端,请使用以下命令。

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
    

    如果服务是自承载类型,请使用以下命令。

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
    

    注释

    若要跳过生成客户端配置,请添加 /noConfig 选项。

另请参阅