如何将单个IIS虚拟目录(应用程序及配置)迁移至另一服务器
选择性迁移特定IIS应用程序及关联配置的方法
针对你需要迁移指定Web服务(含认证、日志等IIS配置)的需求,以下是两种工具的具体解决方案:
一、使用MSDeploy(Web Deploy)工具
你之前的命令导出了整个站点,只需修改apphostconfig的路径为具体应用程序的完整路径,即可单独导出目标应用的文件和配置:
单个应用打包命令
"c:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:apphostconfig="Default Web Site/[你的应用完整路径]" -dest:package=c:\[应用名称].zip
比如针对你提到的BizTalk下的应用,命令示例:
"c:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:apphostconfig="Default Web Site/BizTalk/[目标应用名称]" -dest:package=c:\[目标应用名称].zip
包含关联应用池的打包命令
如果目标应用使用了自定义应用池,需要同时迁移应用池配置的话,可在命令中追加apppoolconfig源:
"c:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:apphostconfig="Default Web Site/[你的应用完整路径]",apppoolconfig="[应用池名称]" -dest:package=c:\[应用名称]_with_pool.zip
该方式会自动包含应用的认证设置、日志配置、虚拟目录映射、应用池关联等所有IIS级配置,同时打包应用文件。
二、使用PowerShell命令
放弃Export-IISConfiguration(导出全IIS配置),改用Export-WebConfiguration针对单个应用导出:
单个应用导出命令
# 导出指定应用的配置及文件 Export-WebConfiguration -PSPath "IIS:\Sites\Default Web Site\[你的应用完整路径]" -PhysicalPath "d:\appdata\IIS\Exports\[应用名称]" -IncludePhysicalPaths
参数说明:
-PSPath:指定IIS中应用的完整路径(对应站点下的应用层级)-IncludePhysicalPaths:同时导出应用的物理文件;若仅需配置,可移除该参数
批量导出示例
针对三个目标应用,可依次执行:
Export-WebConfiguration -PSPath "IIS:\Sites\Default Web Site\BizTalk\App1" -PhysicalPath "d:\appdata\IIS\Exports\App1" -IncludePhysicalPaths Export-WebConfiguration -PSPath "IIS:\Sites\Default Web Site\BizTalk\App2" -PhysicalPath "d:\appdata\IIS\Exports\App2" -IncludePhysicalPaths Export-WebConfiguration -PSPath "IIS:\Sites\Default Web Site\BizTalk\App3" -PhysicalPath "d:\appdata\IIS\Exports\App3" -IncludePhysicalPaths
注意事项
- 目标服务器需提前安装对应版本的MSDeploy(若用Web Deploy方式)
- 若应用依赖的组件(如.NET版本、BizTalk相关组件)未在目标服务器安装,迁移后需补充部署
- 日志配置若为站点级继承设置,需确保目标服务器的站点日志配置与源服务器一致;若为应用单独配置,会随应用导出同步
内容的提问来源于stack exchange,提问作者NealWalters
相关产品推荐
相关产品推荐

