wwwroot 这个名称通常与 Windows Server 的 IIS (Internet Information Services) Web 服务器相关联,我将主要围绕 IIS 环境来讲解,但核心原则也适用于其他 Web 服务器环境(如 Nginx、Apache)。

wwwroot网站转移
(图片来源网络,侵删)

核心转移流程概览

整个过程可以分为三大步骤:

  1. 源服务器(旧服务器):备份网站的所有文件和配置。
  2. 目标服务器(新服务器):部署文件和配置,并确保环境一致。
  3. DNS 解析切换:将域名指向新服务器,完成最终切换。

第一步:在源服务器上进行完整备份

这是最关键的一步,确保万无一失,你需要备份两部分内容:网站文件网站配置

备份网站文件

wwwroot 文件夹通常位于你的网站根目录下,C:\inetpub\wwwroot\YourWebsiteName

  • 手动复制(适合小型网站)
    • 直接将 wwwroot 文件夹打包成一个 .zip 文件。
    • 注意:在打包前,最好先停止网站在 IIS 中的运行,以避免文件在打包过程中被修改导致不完整。
  • 使用命令行(推荐,适合大型网站)
    • 打开命令提示符(CMD)或 PowerShell,使用 robocopy 命令,这个工具非常强大,可以只复制变化的文件,效率高且稳定。
      robocopy "C:\inetpub\wwwroot\YourWebsiteName" "D:\Backup\YourWebsiteName" /MIR /E /ZB /R:2 /W:5
    • 命令解释:
      • robocopy: 源路径和目标路径。
      • /MIR: 镜像复制,会删除目标目录中多余的文件(确保完全一致,请谨慎使用)。
      • /E: 复制子目录,包括空目录。
      • /ZB: 使用重启模式,如果遇到权限问题,尝试以备份模式运行。
      • /R:2: 重试次数为2次。
      • /W:5: 重试间隔为5秒。
    • 复制完成后,将 D:\Backup\YourWebsiteName 文件夹打包成 .zip

备份网站配置(IIS 设置)

IIS 的配置(如网站绑定、应用程序池、重写规则等)存储在配置文件中,手动复制容易出错,强烈建议使用 IIS 管理器自带的工具。

wwwroot网站转移
(图片来源网络,侵删)
  • 使用 IIS 管理器导出

    1. 打开 IIS 管理器
    2. 在左侧的“连接”面板中,展开你的服务器节点。
    3. 点击 “应用程序池”,选中你的网站使用的应用程序池,右键点击选择 “全部任务” -> “备价新配置文件...”,将其导出为一个 .xml 文件。
    4. 点击 “网站”,选中你的网站,右键点击选择 “管理网站” -> “备份数据库...”
      • 重要提示:如果你的网站使用的是 Access (.mdb) 数据库,这个“备份数据库”功能可能不适用,你需要手动找到 .mdb 文件并复制它,对于 SQL Server 等数据库,你需要使用数据库的专用备份工具(如 SQL Server Management Studio)。
    5. 更简单的方法:使用 AppCmd 命令行工具 这个命令可以一次性导出整个站点的配置,非常方便。
      %windir%\system32\inetsrv\appcmd add backup "MyWebsiteBackup"

      这会在 %windir%\system32\inetsrv\backup\ 目录下创建一个名为 MyWebsiteBackup 的备份文件夹。

  • 备份数据库

    • SQL Server: 使用 SQL Server Management Studio (SSMS) 连接到数据库,右键点击数据库 -> 任务 -> 备份
    • MySQL/MariaDB: 使用 mysqldump 命令行工具。
    • Access: 直接将 .mdb.accdb 文件从 App_Data 文件夹(如果存在)复制出来。
    • 其他数据库: 请参考对应数据库的官方文档进行备份。

你应该得到一个包含以下内容的备份包:

wwwroot网站转移
(图片来源网络,侵删)
  • YourWebsite_Files.zip (网站根目录所有文件)
  • YourWebsite_Config.xmlMyWebsiteBackup 文件夹 (IIS 配置)
  • YourDatabase.bakYourDatabase.sql (数据库备份文件)

第二步:在目标服务器上进行恢复和部署

准备服务器环境

在将文件复制过去之前,确保新服务器的基础环境与旧服务器一致,这是避免后续大量调试的关键。

  • 操作系统版本: 尽量保持一致(如都是 Windows Server 2025)。
  • IIS 版本: 确保安装了相同或更高版本的 IIS。
  • 所需组件: 确保安装了网站所需的 IIS 角色,
    • ASP.NET
    • ASP.NET 4.5/4.8 (如果你的网站使用)
    • URL Rewrite 模块
    • Application Request Routing
    • 其他你网站依赖的组件。
  • .NET Framework 版本: 确保安装了与旧服务器相同的 .NET Framework 版本。
  • 数据库: 在新服务器上安装并配置好与旧服务器相同的数据库系统(如 SQL Server、MySQL),并创建好数据库和用户,并授予正确的权限。

恢复文件和配置

  1. 上传文件:

    • YourWebsite_Files.zip 解压,并复制到新服务器的 wwwroot 目录下,C:\inetpub\wwwroot\YourWebsiteName
    • 重要: 确保网站文件夹的 IIS_IUSRSUsers 组有 读取和执行列出文件夹内容读取 权限,并且应用程序池的标识用户(通常是 IIS_IUSRS 或特定账户)有 修改 权限,你可以右键点击文件夹 -> 属性 -> 安全 -> 编辑 来设置。
  2. 恢复数据库:

    • 使用对应的数据库管理工具,将 YourDatabase.bakYourDatabase.sql 恢复到新服务器的数据库中。
    • 修改数据库连接字符串: 在网站的配置文件中(通常是 web.config),找到数据库连接字符串,将其指向新服务器的数据库地址、数据库名称和用户名/密码。
  3. 恢复 IIS 配置:

    • 导入配置文件
      1. 在新服务器的 IIS 管理器中,右键点击 “应用程序池” -> 导入配置...,选择之前导出的 .xml 文件。
      2. 右键点击 “网站” -> 导入配置...,选择同一个 .xml 文件。
    • 使用 AppCmd 命令行工具
      %windir%\system32\inetsrv\appcmd restore backup "MyWebsiteBackup"

      这会从之前创建的备份中恢复整个站点的配置。

检查和测试

  • 检查网站绑定: 在 IIS 管理器中,双击你的网站,检查 “绑定” 设置,确保端口号(通常是 80 或 443)、主机名(域名)和 SSL 证书都已正确配置。
  • 检查应用程序池: 确保网站使用的应用程序池是正确的,.NET CLR 版本设置与旧服务器一致。
  • 本地测试: 在新服务器上打开浏览器,访问 http://localhost/YourWebsiteName,测试网站是否可以正常运行,检查所有页面、功能(特别是数据库连接)是否正常。

第三步:DNS 解析切换

这是最后一步,也是风险最高的一步,在切换前,请再次确认新服务器上的网站一切正常。

  1. 设置 DNS TTL:

    • 在你的域名注册商(如阿里云、腾讯云、GoDaddy)的 DNS 管理页面中,找到你的域名记录(A 记录或 CNAME 记录)。
    • 将其 TTL (Time To Live) 值修改为一个较小的值,5分钟或 1分钟,这可以让全球的 DNS 服务器更快地获取到新的更改,缩短切换时间。
  2. 修改 DNS 记录:

    • 将指向旧服务器 IP 地址的 A 记录,修改为新服务器的 IP 地址。
    • 如果是 CNAME 记录,同样修改其指向。
  3. 等待生效:

    • 修改完成后,等待 TTL 指定的时间(5-10 分钟),在此期间,不同地区的用户可能会同时访问到旧服务器和新服务器,这是正常的。
    • 你可以使用 ping 命令 ping yourdomain.com 来观察 IP 地址是否已经切换。
  4. 监控和回滚:

    • 切换后,密切监控网站访问情况和服务器性能。
    • 如果发现新服务器上有严重问题,需要立即回滚,只需将 DNS 记录改回旧服务器的 IP 地址即可。

总结与最佳实践

  • 完整备份是基础: 永远不要低估备份的重要性。
  • 环境一致性是关键: 新服务器的软件环境和旧服务器越接近,迁移后的工作就越少。
  • 使用工具提高效率: robocopyappcmd 是 Windows 服务器迁移的利器。
  • 先测试再切换: 在本地或测试环境完成所有测试,确保万无一失后再进行 DNS 切换。
  • 选择低峰期切换: 最好在访问量较低的时段(如深夜或凌晨)进行 DNS 切换,以减少对用户的影响。
  • 保留旧服务器一段时间: 在确认新服务器稳定运行 24-48 小时后,再关闭或格式化旧服务器,以防万一。

遵循以上步骤,你可以系统、安全地完成 wwwroot 网站的转移工作。