使用 Xcopy 部署部署 ASP.NET Web 应用程序

本文介绍如何使用 MS-DOS Xcopy 命令来部署 Microsoft ASP.NET Web 应用程序。

原始产品版本: ASP.NET
原始 KB 数: 326355

总结

Xcopy 样式的部署并不适合所有情况。 对于大型网站和业务线应用程序,我们建议站点暂时脱机。 你应该在部署新内容和应用程序程序集时执行此操作。 可以在方便时按照计划进行此维护。 为了尽量减少计划的停机时间,请遵循以下步骤:

  1. 为要更新的应用程序创建一个新的物理目录。 将所有新内容复制到新的物理目录。

  2. 重新配置应用程序的虚拟目录以指向具有新内容的新物理目录。

    注意

    当你将新内容部署到 ASP.NET Web 应用程序时,该应用程序可能会重启。 如果你有大型应用程序和具有显著内存需求的复杂应用程序,则内存消耗可能会增加。 重启应用程序时,可能会出现可支持性问题。 这包括丢失用户会话状态。

什么是 Xcopy 部署

Xcopy 部署是一种 ASP.NET 部署,可以在其中使用 Microsoft Windows 资源管理器中的拖放功能、文件传输协议 (FTP) 或 DOS Xcopy 命令,将文件从一个位置复制到另一个位置。 ASP.NET 应用程序不需要修改注册表,并且对托管站点上的托管公司没有特殊的安装要求。

Xcopy 部署的优势

Xcopy 样式的文件传输简化了 ASP.NET 站点的部署和维护,因为无需创建注册表项,也无需注册任何组件。 Microsoft .NET 应用程序具备自述性,通常没有依赖项。 通过程序集版本控制,甚至可以在不中断 Web 服务器的情况下复制应用程序使用的动态链接库 (DLL) 的新副本。

Xcopy 部署和 Visual Studio .NET 中 Copy Project 的区别

Xcopy 部署不需要在开发计算机或 Web 服务器上安装任何特殊软件。 Visual Studio .NET Copy Project 方法则需要在远程服务器上安装 Microsoft FrontPage 服务器扩展 (FPSE)。 Xcopy 还能够仅替换最近编辑的文件。 你可以手动选择并替换文件,也可以使用 Xcopy 命令的 /d 开关来指定日期,如下所示:

xcopy source [destination] /D:m-d-y

将虚拟目录设置为 IIS 应用程序

如果尚未设置目标目录,则必须在传输文件之前将其设置为 Microsoft Internet Information Services (IIS) 中的应用程序。 要设置虚拟目录,请执行以下步骤:

  1. 单击“开始”,指向“程序”,指向“管理工具”,然后单击“Internet 服务管理器”
  2. 在左窗格中,右键单击虚拟目录的名称,然后单击“属性”
  3. 确保“应用程序设置”下的“应用程序名称”框中列出了网站名称或虚拟目录的名称。 如果未列出,则单击“创建”

故障排除

在某些情况下,无法仅通过 Xcopy 文件传输来完成 ASP.NET Web 应用程序的部署。 这些情况包括:

  • 需要安装在全局程序集缓存 (GAC) 中的程序集。 如果必须跨多个应用程序域共享 ASP.NET 使用的任何程序集,则必须使用 Gacutil.exe 实用工具将这些程序集注册到 GAC 中。 每次部署应用程序时,你都必须取消注册、替换然后重新注册程序集。

  • 组件对象模型 (COM) 互操作。 如果 ASP.NET 应用程序通过 COM 互操作使用任何 COM 组件,则必须向 COM+ 服务注册这些 COM 组件。

  • 提供的组件。 Microsoft 建议使用 Regsvcs.exe 实用工具来注册任何使用 COM+ 服务的类(这些类派生自 System.EnterpriseServices.ServicedComponent 类)。

参考