一直在使用的基于IIS的OA网站监控及自动重启脚本,分享出来给需要的朋友。
现象

IIS经常会因某些BUG无法访问

处理思路

1、在无法修改代码情况下,尝试使用IIS自动监控并且自动重启应用程序池或网站进行修复。不过由于重启应用程序池异常,因此本脚本尝试给网站更换一个应用程序池(应用程序池之前已经创建)
2、监控前提:安装cur(本文中不再详细描述,可以度娘下)l并使用curl进行网页打开是否正常测试;

@echo off
set oa=http://172.16.1.3/OA/index.aspx
echo %oa%
for /f %%z in ('curl -so /dev/null -w %%{http_code} %oa%') do (
set result=%%z)
if %result% equ 200 (cd C:\Windows\System32\inetsrv
appcmd set site /site.name:OA /[path='/'].applicationPool:oa 
echo %date:~0,10% %time:~0,8% Restart OAWEB服务 >>c:\RESTART_OA.txt)

 else exit

使用效果:将上述代码保存为一个bat脚本后通过计划任务实现定期监查网站,一旦网页打不开就自动更换一个应用程序池(当然也可以直接重启网站服务或重启应用程序池,本文中不再详细描述,可以度娘下),这样如果一台服务器上IIS有多个网站,直接重启IIS可能会影响其他网站用户访问网站的感受,而上述脚本只需要修改应用程序池就相应于重启了这个网站。