如何在ASP.NET Web应用中自动化部署并删除IIS的app_offline.htm
用MSDeploy自动化部署IIS应用并管理app_offline.htm文件
你可以通过MSDeploy(Web Deploy的命令行工具)实现部署前后自动上传、删除app_offline.htm的操作,具体步骤和命令用法如下:
前置准备
- 确认目标服务器和本地部署机器都已安装Web Deploy,如果用Visual Studio部署,通常会自带MSDeploy工具,路径一般在
C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe - 把命令里的占位符替换成实际信息:
[Project folder]:本地项目中App_offline.template.htm文件的完整路径[IIS application path]:目标服务器上IIS应用对应的物理路径(比如C:\inetpub\wwwroot\MyWebApp)[Destination web server]:目标服务器的IP地址或主机名
1. 部署前上传app_offline.htm
运行这个命令,把本地的模板文件同步到服务器并命名为app_offline.htm,IIS检测到这个文件后会自动暂停站点对外提供服务,避免部署期间用户访问出错:
msdeploy.exe –verb:sync -source:contentPath="D:\Projects\MyWebApp\App_offline.template.htm" -dest:contentPath="C:\inetpub\wwwroot\MyWebApp\App_offline.htm",computerName="192.168.1.100"
如果目标服务器需要Windows身份验证,在dest参数里追加账号密码:userName="服务器管理员账号",password="对应密码"
2. 部署完成后删除app_offline.htm
应用部署完成后,运行这个命令删除服务器上的app_offline.htm,IIS会自动恢复站点正常访问:
msdeploy.exe –verb:delete -dest:contentPath="C:\inetpub\wwwroot\MyWebApp\App_offline.htm",computerName="192.168.1.100"
同样,需要身份验证的话加上账号密码参数
3. 自动化串联整个流程
把上传、部署、删除三个步骤写成批处理脚本(.bat),一键完成整个自动化部署流程:
@echo off echo 正在上传app_offline.htm,暂停站点访问... msdeploy.exe –verb:sync -source:contentPath="D:\Projects\MyWebApp\App_offline.template.htm" -dest:contentPath="C:\inetpub\wwwroot\MyWebApp\App_offline.htm",computerName="192.168.1.100",userName="admin",password="123456" echo 开始部署应用程序... :: 这里替换成你的应用部署命令,比如同步整个IIS应用内容 msdeploy.exe –verb:sync -source:iisApp="D:\Projects\MyWebApp" -dest:iisApp="MyWebApp",computerName="192.168.1.100",userName="admin",password="123456" echo 部署完成,删除app_offline.htm恢复站点访问... msdeploy.exe –verb:delete -dest:contentPath="C:\inetpub\wwwroot\MyWebApp\App_offline.htm",computerName="192.168.1.100",userName="admin",password="123456" echo 所有操作执行完毕! pause
内容的提问来源于stack exchange,提问作者sandeep.mishra
相关产品推荐
相关产品推荐

