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

(图片来源网络,侵删)
核心转移流程概览
整个过程可以分为三大步骤:
- 源服务器(旧服务器):备份网站的所有文件和配置。
- 目标服务器(新服务器):部署文件和配置,并确保环境一致。
- 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。
- 打开命令提示符(CMD)或 PowerShell,使用
备份网站配置(IIS 设置)
IIS 的配置(如网站绑定、应用程序池、重写规则等)存储在配置文件中,手动复制容易出错,强烈建议使用 IIS 管理器自带的工具。

(图片来源网络,侵删)
-
使用 IIS 管理器导出
- 打开 IIS 管理器。
- 在左侧的“连接”面板中,展开你的服务器节点。
- 点击 “应用程序池”,选中你的网站使用的应用程序池,右键点击选择 “全部任务” -> “备价新配置文件...”,将其导出为一个
.xml文件。 - 点击 “网站”,选中你的网站,右键点击选择 “管理网站” -> “备份数据库...”。
- 重要提示:如果你的网站使用的是 Access (.mdb) 数据库,这个“备份数据库”功能可能不适用,你需要手动找到
.mdb文件并复制它,对于 SQL Server 等数据库,你需要使用数据库的专用备份工具(如 SQL Server Management Studio)。
- 重要提示:如果你的网站使用的是 Access (.mdb) 数据库,这个“备份数据库”功能可能不适用,你需要手动找到
- 更简单的方法:使用 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文件夹(如果存在)复制出来。 - 其他数据库: 请参考对应数据库的官方文档进行备份。
你应该得到一个包含以下内容的备份包:

(图片来源网络,侵删)
YourWebsite_Files.zip(网站根目录所有文件)YourWebsite_Config.xml或MyWebsiteBackup文件夹 (IIS 配置)YourDatabase.bak或YourDatabase.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),并创建好数据库和用户,并授予正确的权限。
恢复文件和配置
-
上传文件:
- 将
YourWebsite_Files.zip解压,并复制到新服务器的wwwroot目录下,C:\inetpub\wwwroot\YourWebsiteName。 - 重要: 确保网站文件夹的 IIS_IUSRS 或 Users 组有 读取和执行、列出文件夹内容、读取 权限,并且应用程序池的标识用户(通常是
IIS_IUSRS或特定账户)有 修改 权限,你可以右键点击文件夹 -> 属性 -> 安全 -> 编辑 来设置。
- 将
-
恢复数据库:
- 使用对应的数据库管理工具,将
YourDatabase.bak或YourDatabase.sql恢复到新服务器的数据库中。 - 修改数据库连接字符串: 在网站的配置文件中(通常是
web.config),找到数据库连接字符串,将其指向新服务器的数据库地址、数据库名称和用户名/密码。
- 使用对应的数据库管理工具,将
-
恢复 IIS 配置:
- 导入配置文件
- 在新服务器的 IIS 管理器中,右键点击 “应用程序池” -> 导入配置...,选择之前导出的
.xml文件。 - 右键点击 “网站” -> 导入配置...,选择同一个
.xml文件。
- 在新服务器的 IIS 管理器中,右键点击 “应用程序池” -> 导入配置...,选择之前导出的
- 使用 AppCmd 命令行工具
%windir%\system32\inetsrv\appcmd restore backup "MyWebsiteBackup"
这会从之前创建的备份中恢复整个站点的配置。
- 导入配置文件
检查和测试
- 检查网站绑定: 在 IIS 管理器中,双击你的网站,检查 “绑定” 设置,确保端口号(通常是 80 或 443)、主机名(域名)和 SSL 证书都已正确配置。
- 检查应用程序池: 确保网站使用的应用程序池是正确的,.NET CLR 版本设置与旧服务器一致。
- 本地测试: 在新服务器上打开浏览器,访问
http://localhost/YourWebsiteName,测试网站是否可以正常运行,检查所有页面、功能(特别是数据库连接)是否正常。
第三步:DNS 解析切换
这是最后一步,也是风险最高的一步,在切换前,请再次确认新服务器上的网站一切正常。
-
设置 DNS TTL:
- 在你的域名注册商(如阿里云、腾讯云、GoDaddy)的 DNS 管理页面中,找到你的域名记录(A 记录或 CNAME 记录)。
- 将其 TTL (Time To Live) 值修改为一个较小的值,5分钟或 1分钟,这可以让全球的 DNS 服务器更快地获取到新的更改,缩短切换时间。
-
修改 DNS 记录:
- 将指向旧服务器 IP 地址的 A 记录,修改为新服务器的 IP 地址。
- 如果是 CNAME 记录,同样修改其指向。
-
等待生效:
- 修改完成后,等待 TTL 指定的时间(5-10 分钟),在此期间,不同地区的用户可能会同时访问到旧服务器和新服务器,这是正常的。
- 你可以使用
ping命令ping yourdomain.com来观察 IP 地址是否已经切换。
-
监控和回滚:
- 切换后,密切监控网站访问情况和服务器性能。
- 如果发现新服务器上有严重问题,需要立即回滚,只需将 DNS 记录改回旧服务器的 IP 地址即可。
总结与最佳实践
- 完整备份是基础: 永远不要低估备份的重要性。
- 环境一致性是关键: 新服务器的软件环境和旧服务器越接近,迁移后的工作就越少。
- 使用工具提高效率:
robocopy和appcmd是 Windows 服务器迁移的利器。 - 先测试再切换: 在本地或测试环境完成所有测试,确保万无一失后再进行 DNS 切换。
- 选择低峰期切换: 最好在访问量较低的时段(如深夜或凌晨)进行 DNS 切换,以减少对用户的影响。
- 保留旧服务器一段时间: 在确认新服务器稳定运行 24-48 小时后,再关闭或格式化旧服务器,以防万一。
遵循以上步骤,你可以系统、安全地完成 wwwroot 网站的转移工作。
