Windows Communication Foundation 示例的一次性安装过程

大多数 Windows Communication Foundation (WCF) 示例托管在 Internet Information Services (IIS)中,并从通用虚拟目录运行。 此一次性安装过程在磁盘上创建一个文件夹;它还将虚拟目录添加到名为 ServiceModelSamples 的 IIS。

ServiceModelSamples 虚拟目录用于生成和运行使用 IIS 托管服务的所有示例。 这是运行示例所需的唯一虚拟目录。 生成示例将替换此虚拟目录中以前部署的任何服务;只会在此虚拟目录中部署和提供最近生成的示例。

注释

  • 必须在本地管理员帐户下运行所有命令。 如果使用 Windows 7、Windows Vista 或 Windows Server 2008 R2,则还必须使用提升的权限运行命令提示符。 为此,请右键单击命令提示符图标,然后单击“ 以管理员身份运行”。
  • 本文中的所有命令都必须在具有相应路径设置的命令提示符中运行。 使用 Visual Studio 开发人员命令提示符 是确保这一点的最简单方法。

WCF 示例的一次性安装过程

  1. 确保 ASP.NET 已安装并设置。 有关如何设置 ASP.NET 的详细信息,请参阅 Internet Information Service 宿主说明

  2. 确保已安装 .NET Framework 4+ 。 在以下目录中搜索 v4.0(或更高版本): \Windows\Microsoft.NET\Framework

  3. 确保已安装 Visual Studio 2012 或更高版本,或者作系统为 Windows Server 2008 SP2 或更高版本。

  4. 运行以下命令。 有关必须运行这些命令的原因的详细信息,请参阅 IIS 托管服务失败

    警告

    如果重新安装 IIS,则需要再次运行以下命令。

    "%WINDIR%\Microsoft.Net\Framework\v4.0.30319\aspnet_regiis" –i –enable
    "%WINDIR%\Microsoft.Net\Framework\v4.0.30319\ServiceModelReg.exe" -r
    

    警告

    运行该命令 aspnet_regiis –i –enable 将使默认应用池使用 .NET Framework 4 运行,这可能会对同一计算机上的其他应用程序产生不兼容问题。

  5. 按照 防火墙说明 启用示例使用的端口。

  6. 运行 Setupvroot.bat 批处理文件。 执行以下步骤:

    • 在名为 ServiceModelSamples 的 IIS 中创建虚拟目录。

    • 新建磁盘目录 %SystemDrive%\Inetpub\wwwroot\ServiceModelSamples 和 %SystemDrive%\Inetpub\wwwroot\ServiceModelSamples\bin。

    如果想要手动设置这些目录,请参阅 虚拟目录设置说明。 若要还原此步骤中完成的所有更改,请在使用完示例后 运行cleanupvroot.bat

    注释

    除非运行 cleanupvroot.bat,否则只能在计算机上执行此过程一次。

  7. 您必须向在其下生成示例的帐户和 Network Service 用户授予对 %SystemDrive%\inetpub\wwwroot 的修改权限。 生成时,某些 Web 托管的示例可能会尝试将编译的二进制文件复制到前面提到的位置,如果尚未设置适当的权限,生成将中断。 或者,可以保留权限,然后以管理员身份运行 SDK 命令提示符或 Visual Studio 命令提示符(2012),或者在 Visual Studio 2012 中生成示例,并以管理员身份运行。

    注释

    如果未完成此步骤,则生成时,所有 IIS 托管的示例都将失败。 确保正确设置权限,或同时以管理员身份运行 SDK 命令提示符和 Visual Studio 命令提示符。

  8. 在计算机上创建 C:\logs 目录,因为某些示例可能需要它。 确保相应的帐户已授予对此文件夹的写入访问权限。 对于 Windows 7、Windows Vista 和 Windows Server 2008 R2,此帐户是 网络服务。 对于 Windows Server 2008,帐户为 NT Authority\Network Service。 对于 Windows XP 和 Windows Server 2003,帐户是 ASPNET。

  9. 运行 Setupcerttool.bat 文件。 此脚本执行以下任务:

    • 生成 FindPrivateKey 工具

    • 创建名为 %ProgramFiles%\ServiceModelSampleTools 的目录。

    • 将新的 FindPrivateKey 工具复制到此目录。

    使用证书并在 IIS 中托管的示例需要此工具。

    注释

    出于安全考虑,请记得在完成示例后运行名为 cleanupvroot.bat 的批处理文件,删除上述设置步骤中授予的虚拟目录定义和权限。

  10. 自承载(不承载于 IIS 中)的示例需要在计算机上注册要侦听的 HTTP 地址的权限。 HTTP 命名空间预留的权限来自用于运行示例的用户帐户。 默认情况下,管理员帐户有权注册任何 HTTP 地址。 必须为样本使用的 HTTP 命名空间授予非管理员帐户权限。 有关如何配置命名空间预留的详细信息,请参阅 配置 HTTP 和 HTTPS

  11. 有些示例需要使用消息队列。 有关安装说明,请参阅 安装消息队列(MSMQ )。

    注释

    确保在运行需要消息队列的任何示例之前启动 MSMQ 服务。

  12. 某些示例需要证书。 请参阅 Internet Information Services (IIS) 服务器证书安装说明