一、需求说明
我们部署在Windows服务器上的IIS网站,需要在特定的时间停止一会后在进行重新启动该网站。
二、思路分析
由于需要特定的时间停止后重启网站,则手动操作肯定是不行的,需要实现自动化操作:
①特定时间操作可以使用Windows系统自带的【任务计划程序】进行实现;
②停止、启动网站则是使用命令行进行处理
三、实现方法
3.1、特定时间启动程序
关于使用Windows系统自带的【任务计划程序】进行特定时间启动程序的操作可以参考《Windows系统实现定时关闭、启动指定服务》的《三、实现操作》目录内容进行配置即可
3.2、停止启动网站命令
序号 | 命令 | 说明 |
1 | cd C:\Windows\System32\inetsrv | 进入网站命令行程序路径 |
2 | appcmd stop site "网站名称" | 停止指定名称的网站 |
3 | appcmd start site "网站名称" | 启动指定名称的网站 |
4 | appcmd /? | 通用 IIS 命令行管理工具(帮助) |
5 | appcmd site /? | 网站管理命令 |

3.3、批处理延迟命令
序号 | 命令 | 说明 |
1 | timeout /t 12 | 等待12秒后继续执行(可按任意键跳过) |
2 | timeout /t 12 /nobreak | 等待12秒后继续执行(可同时按下Ctrl+C跳过) |
3 | timeout /t -1 | 等待按下任意键跳过,相当于pause的暂停 |

3.4、示例
实现一个先停止"WebAPIDemo"网站等待12秒后在重启"WebAPIDemo"网站的批处理代码
c:
cd C:\Windows\System32\inetsrv
appcmd stop site "WebAPIDemo"
timeout /t 12
appcmd start site "WebAPIDemo"
pause
将这个示例代码复制到一个文本文件中,将文本文件的后缀修改为.bat后保存即可运行,运行效果如下:
