线上IIS应用程序池自动关闭

Posted zhangdk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线上IIS应用程序池自动关闭相关的知识,希望对你有一定的参考价值。

事情的经过是这样的:

下午下班的铃声已经敲响,我已经整装待发。突然同事说某水司的微信公众号不能正常访问了。点击营业厅,直接提示Service Unavailable

立马远程服务器查看,IIS微信公众号所在应用程序池停止运行啦。再次启动后,点击营业厅仍然返回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这个负载均衡模块我们在其他客户现场是有使用过的,这次为什么不兼容,还有待进一步探究。

以上是关于线上IIS应用程序池自动关闭的主要内容,如果未能解决你的问题,请参考以下文章

IIS无法启动,应用程序池自动关闭,应用程序池XXXX将被自动禁用 解决方案之一

windows 7 sp1 版本下的IIS应用程序池总是自动停止?

IIS 应用程序池自动关闭的解决办法

IIS 7 应用程序池自动回收关闭的解决方案

iis的应用程序池为啥会自动停止

winserver 2003 IIS默认网站点浏览应用池就自动关闭,显示Service Unavailable,503错误