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

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

“ServiceModelSamples”虚拟目录用于生成和运行使用 IIS 承载的服务的所有示例。 这是运行示例所需的唯一虚拟目录。 绑定示例将替换以前在此虚拟目录部署的所有服务;只有最近生成的示例将在此虚拟目录中部署并可用。

注意

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

WCF 示例的一次性安装过程

  1. 确保已安装 ASP.NET。 若要详细了解如何设置 ASP.NET,请参阅 Internet 信息服务托管说明

  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 批处理文件。 将执行以下步骤:

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

    • 新建名为 %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,此帐户为 Network Service。 对于 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) 服务器证书安装说明