演练:使用 Web 部署包部署 Web 应用程序项目(第 4 部分,共 4 部分)

本演练是一系列演练中的第四个演练,这些演练阐释如何使用 Web 部署包来部署 Web 应用程序项目。 有关此系列演练的更多信息,请参见演练:使用 Web 部署包部署 Web 应用程序项目(第 1 部分,共 4 部分)

在本演练中,将使用在第三个演练中创建的包以便在远程计算机上安装 Web 应用程序。 本演练阐释了以下任务:

  • 使用 deploy.cmd 文件在远程计算机上安装包。

  • 在安装包时,将自定义部署参数用于希望能更改的配置值。

系统必备

有关系统必备组件的列表,请参见演练:使用 Web 部署包部署 Web 应用程序项目(第 1 部分,共 4 部分)

准备目标服务器

如果有人为您设置目标服务器,则此操作的执行者将指定您必须使用的部署方法。 如果您设置目标服务器,则必须选择一种方法。 以下是可用的方法:

  • Web 管理服务 (WMSvc) 和 Web 部署处理程序。

  • Web 部署代理服务 (MsDepSvc)。

  • Web 部署 tempAgent 提供程序设置。

有关这些方法的更多信息,或有关如何设置目标服务器以使用其中某种方法的信息,请参见如何:使用 deploy.cmd 文件安装部署包

除了为所选部署方法配置目标服务器之外,目标服务器还必须满足以下条件:

  • 已启用 IIS 7。

  • 已向 IIS 7 注册 ASP.NET 4。

  • 具有分配到默认网站的 ASP.NET 4 应用程序池。

在继续本演练之前,应先设置目标服务器。

设置部署参数

在下面的过程中,请确保 SetParameters.xml 文件包含正确的值。 这样做与在使用 IIS 管理器安装包时,验证或更改**“输入应用程序包信息”**对话框中显示的参数值具有相同的作用。

修改 SetParamters.xml 文件

  1. 打开您在此系列演练中的第一个演练中创建的 Web 应用程序项目。

  2. 在**“解决方案资源管理器”**中,依次展开 obj 文件夹、Release 文件夹和 Package 文件夹。 (在前一个演练中,您已打开 Debug 文件夹。 请确保您此时使用的是 Release 文件夹而非 Debug 文件夹。)

  3. 打开 AdventureWorks.SetParameters.xml。

    该文件中的 XML 类似下面的示例:

    <parameters>
      <setParameter name="IIS Web Application Name" 
        value="Default Web Site/AdventureWorks" /> 
      <setParameter name="machineKey" value="staging" /> 
      <setParameter name="ApplicationServices-Deployment Connection String"
        value="... " /> 
      <setParameter name="AWLTConnectionString-Deployment Connection String"
        value="..." /> 
      <setParameter name="ApplicationServices-Web.config Connection String" 
        value="..." /> 
      <setParameter name="AWLTConnectionString-Web.config Connection String" 
        value="..." /> 
    </parameters>
    

    请注意 setParameter 元素,该元素将 machineKey 作为其 name 特性的值。 该 setParameter 元素的 value 特性为 staging,它是您在此系列演练中的第三个演练中设置的默认值,此默认值将部署到临时服务器。 如果您准备在生产服务器上安装此包,则可为 machineKey 参数将此 setParameter 元素的 value 特性更改为生产值。 然后将更新部署的 Web.config 文件,以包含该生产值而非临时值。

准备使用 Deploy.cmd 文件进行远程安装

在下面的过程中,准备通过打开命令提示符并浏览到包含 deploy.cmd 文件的文件夹来运行 deploy.cmd 文件。

准备使用 Deploy.cmd 文件进行远程安装

  1. 在**“解决方案资源管理器”**中,选择 AdventureWorks.SetParameters.xml 文件。

  2. 在**“属性”窗口中,记下“完整路径”**属性的值。

  3. 在 Windows**“开始”菜单中单击“命令提示符”**。

  4. 浏览找到包含 AdventureWorks.SetParameters.xml 文件的文件夹。

    **“命令提示符”**窗口此时已准备就绪,您可以在其中输入运行 deploy.cmd 文件的命令。

deploy.cmd 文件的语法随您使用的部署方法的不同而不同。 使用针对所选方法的过程。

以下各节中的语法示例包括以下占位符:

  • ServerName。 将此名称替换为目标服务器的名称。

  • UserName 和 Password。 如果适用,则可将这些值替换为已为部署设置的实际凭据。

使用 Web 部署处理程序进行远程安装

下面的过程描述如何使用 Web 管理服务 (WMSvc) 和 Web 部署处理程序来安装包。

使用 Web 管理服务和 Web 部署处理程序进行部署

  1. 输入以下命令来执行包安装的试运行:

    AdventureWorks.deploy.cmd /t /m:https://ServerName:8172/MSDeploy.axd /u:username /p:password /a:basic
    

    对于 Web 管理服务部署,通常会为您提供一个用于部署的用户帐户。

    t 选项将在试用模式下运行该命令,以便您能先检查该命令的结果,然后再实际部署应用程序。

    备注

    对于某些方案,在使用 t 选项时部署可能会失败,但在使用 y 选项时部署将成功。有关更多信息,请参见 ASP.NET Web 应用程序项目部署常见问题。)

  2. 如果试运行中的输出不是您所期望的结果,则请进行任何所需更改。

  3. 如果试运行中的输出是您所期望的结果,则重复该命令,这会将 t(试用)标志替换为 y(是)标志,如下面的示例所示:

    AdventureWorks.deploy.cmd /y /m:https://ServerName:8172/MSDeploy.axd /u:username /p:password /a:basic
    

使用 Web 部署代理服务进行远程安装

下面的过程描述如何使用 Web 部署代理服务 (MsDepSvc) 来安装包。

使用 Web 部署代理服务进行部署

  1. 输入以下命令来执行包安装的试运行:

    AdventureWorks.deploy.cmd /t /m:ServerName
    

    对于 Web 部署代理服务,通常使用 Windows 身份验证,而不指定用户名和密码。

    t 选项将在试用模式下运行该命令,以便您能先检查该命令的结果,然后再实际部署应用程序。

    备注

    对于某些方案,在使用 t 选项时部署可能会失败,但在使用 y 选项时部署将成功。有关更多信息,请参见 ASP.NET Web 应用程序项目部署常见问题。)

  2. 如果试运行中的输出不是您所期望的结果,则请进行任何所需更改。

  3. 如果试运行中的输出是您所期望的结果,则重复该命令,这会将 t(试用)标志替换为 y(是)标志,如下面的示例所示:

    AdventureWorks.deploy.cmd /y /m:ServerName
    

使用 tempAgent 提供程序设置进行远程安装

下面的过程描述如何使用 Web 部署 tempAgent 提供程序设置来安装包。

使用 Web 部署 tempAgent 提供程序设置进行部署

  1. 输入以下命令来执行包安装的试运行:

    AdventureWorks.deploy.cmd /t /m:ServerName /g:true
    

    对于 tempAgent 提供程序设置,通常使用 Windows 身份验证,而不指定用户名和密码。

    t 选项将在试用模式下运行该命令,以便您能先检查该命令的结果,然后再实际部署应用程序。

    备注

    对于某些方案,在使用 t 选项时部署可能会失败,但在使用 y 选项时部署将成功。有关更多信息,请参见 ASP.NET Web 应用程序项目部署常见问题。)

  2. 如果试运行中的输出不是您所期望的结果,则请进行任何所需更改。

  3. 如果试运行中的输出是您所期望的结果,则重复该命令,这会将 t(试用)标志替换为 y(是)标志,如下面的示例所示:

    AdventureWorks.deploy.cmd /y /m:ServerName /g:true
    

后续步骤

在此系列演练中的前两个演练中,您已将一个文件系统 Web 应用程序项目部署到 IIS Web 应用程序以便在开发计算机上进行测试。 在第三个演练中,您创建了一个用于部署到临时服务器或生产服务器的包。 在本演练(即此系列演练中的最后一个演练)中,使用 Visual Studio 在创建包时生成的 deploy.cmd 文件将该包部署到远程计算机。

其他一些部署到临时服务器和生产服务器的典型方案包括:

  • 将同一个包用于针对 Web 服务器场中的多个服务器的部署,取消针对首次安装后的所有安装的数据库部署。

  • 阻止部署某些文件(例如,Web.config 文件),因为将在目标服务器上手动更新这些文件,并且您不希望覆盖相应更改。

  • 有关如何处理这些方案的信息,请参见如何:使用 deploy.cmd 文件安装部署包

请参见

概念

ASP.NET 部署内容映射