演练:使用 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 文件
打开您在此系列演练中的第一个演练中创建的 Web 应用程序项目。
在**“解决方案资源管理器”**中,依次展开 obj 文件夹、Release 文件夹和 Package 文件夹。 (在前一个演练中,您已打开 Debug 文件夹。 请确保您此时使用的是 Release 文件夹而非 Debug 文件夹。)
打开 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 文件进行远程安装
在**“解决方案资源管理器”**中,选择 AdventureWorks.SetParameters.xml 文件。
在**“属性”窗口中,记下“完整路径”**属性的值。
在 Windows**“开始”菜单中单击“命令提示符”**。
浏览找到包含 AdventureWorks.SetParameters.xml 文件的文件夹。
**“命令提示符”**窗口此时已准备就绪,您可以在其中输入运行 deploy.cmd 文件的命令。
deploy.cmd 文件的语法随您使用的部署方法的不同而不同。 使用针对所选方法的过程。
以下各节中的语法示例包括以下占位符:
ServerName。 将此名称替换为目标服务器的名称。
UserName 和 Password。 如果适用,则可将这些值替换为已为部署设置的实际凭据。
使用 Web 部署处理程序进行远程安装
下面的过程描述如何使用 Web 管理服务 (WMSvc) 和 Web 部署处理程序来安装包。
使用 Web 管理服务和 Web 部署处理程序进行部署
输入以下命令来执行包安装的试运行:
AdventureWorks.deploy.cmd /t /m:https://ServerName:8172/MSDeploy.axd /u:username /p:password /a:basic
对于 Web 管理服务部署,通常会为您提供一个用于部署的用户帐户。
t 选项将在试用模式下运行该命令,以便您能先检查该命令的结果,然后再实际部署应用程序。
备注
对于某些方案,在使用 t 选项时部署可能会失败,但在使用 y 选项时部署将成功。有关更多信息,请参见 ASP.NET Web 应用程序项目部署常见问题。)
如果试运行中的输出不是您所期望的结果,则请进行任何所需更改。
如果试运行中的输出是您所期望的结果,则重复该命令,这会将 t(试用)标志替换为 y(是)标志,如下面的示例所示:
AdventureWorks.deploy.cmd /y /m:https://ServerName:8172/MSDeploy.axd /u:username /p:password /a:basic
使用 Web 部署代理服务进行远程安装
下面的过程描述如何使用 Web 部署代理服务 (MsDepSvc) 来安装包。
使用 Web 部署代理服务进行部署
输入以下命令来执行包安装的试运行:
AdventureWorks.deploy.cmd /t /m:ServerName
对于 Web 部署代理服务,通常使用 Windows 身份验证,而不指定用户名和密码。
t 选项将在试用模式下运行该命令,以便您能先检查该命令的结果,然后再实际部署应用程序。
备注
对于某些方案,在使用 t 选项时部署可能会失败,但在使用 y 选项时部署将成功。有关更多信息,请参见 ASP.NET Web 应用程序项目部署常见问题。)
如果试运行中的输出不是您所期望的结果,则请进行任何所需更改。
如果试运行中的输出是您所期望的结果,则重复该命令,这会将 t(试用)标志替换为 y(是)标志,如下面的示例所示:
AdventureWorks.deploy.cmd /y /m:ServerName
使用 tempAgent 提供程序设置进行远程安装
下面的过程描述如何使用 Web 部署 tempAgent 提供程序设置来安装包。
使用 Web 部署 tempAgent 提供程序设置进行部署
输入以下命令来执行包安装的试运行:
AdventureWorks.deploy.cmd /t /m:ServerName /g:true
对于 tempAgent 提供程序设置,通常使用 Windows 身份验证,而不指定用户名和密码。
t 选项将在试用模式下运行该命令,以便您能先检查该命令的结果,然后再实际部署应用程序。
备注
对于某些方案,在使用 t 选项时部署可能会失败,但在使用 y 选项时部署将成功。有关更多信息,请参见 ASP.NET Web 应用程序项目部署常见问题。)
如果试运行中的输出不是您所期望的结果,则请进行任何所需更改。
如果试运行中的输出是您所期望的结果,则重复该命令,这会将 t(试用)标志替换为 y(是)标志,如下面的示例所示:
AdventureWorks.deploy.cmd /y /m:ServerName /g:true
后续步骤
在此系列演练中的前两个演练中,您已将一个文件系统 Web 应用程序项目部署到 IIS Web 应用程序以便在开发计算机上进行测试。 在第三个演练中,您创建了一个用于部署到临时服务器或生产服务器的包。 在本演练(即此系列演练中的最后一个演练)中,使用 Visual Studio 在创建包时生成的 deploy.cmd 文件将该包部署到远程计算机。
其他一些部署到临时服务器和生产服务器的典型方案包括:
将同一个包用于针对 Web 服务器场中的多个服务器的部署,取消针对首次安装后的所有安装的数据库部署。
阻止部署某些文件(例如,Web.config 文件),因为将在目标服务器上手动更新这些文件,并且您不希望覆盖相应更改。
有关如何处理这些方案的信息,请参见如何:使用 deploy.cmd 文件安装部署包。