线上IIS应用程序池自动关闭
单位由原来一个web升级为两个web,并做负载均衡
负责分发的服务器在ISS上安装负载均衡应用后,访问网页提示503
Service Unavailable,查看应用进程池自动禁用。手动启用后,再访问网页自动禁止。卸载负载均衡WebPlatformInstaller_x64_en-US后,一切正常。
因为这个方案在测试中已经试用通过,考虑到可能是与操作系统环境不兼容造成的。
现在问题明确了,安装WebPlatformInstaller_x64_en-US
,导致了IIS应用被访问时,应用程序池自动关闭的问题。
1. 查看windows系统日志
模块 DLL C:\Windows\system32\inetsrv\rewrite.dll 未能加载。返回的数据为错误信息。
WebPlatformInstaller_x64_en-US
安装是用来做负载均衡的,所以确实会安装rewrite.dll,但是WebPlatformInstaller_x64_en-US
已经卸载了,为什么还要去找rewrite.dll呢。重新安装WebPlatformInstaller_x64_en-US
,这次对应路径下有rewrite.dll了,但是windows日志还是报同样的错误。
2. rewrite_amd64重装
IIS本身是具备URL重写功能的,因此推测应该是,WebPlatformInstaller_x64_en-US
所安装替换的rewrite.dll与IIS不兼容导致的。于是再次卸载WebPlatformInstaller_x64_en-US
,并下载安装rewrite_amd64
(IIS Url Rewrite Module 2.0),至此问题解决。
总结
1.遇到问题一定要透过现象看本质,通过各种日志及环境变化,定位问题,不能局限于问题表现。
2.WebPlatformInstaller_x64_en-US
这个负载均衡模块我们在其他客户现场是有使用过的,这次为什么不兼容,还有待进一步探究。