zoukankan      html  css  js  c++  java
  • 线上IIS应用程序池自动关闭

    事情的经过是这样的:

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

    立马远程服务器查看,IIS微信公众号所在应用程序池停止运行啦。再次启动后,点击营业厅仍然返回Service Unavailable,应用程序池再次停止运行。

    这时另外一个同事说,他在这台服务器上安装了WebPlatformInstaller_x64_en-US要做负载均衡。安装之后出现了应用程序池自动关闭的问题,但是已经卸载了,还是会自动停止。

    现在问题明确了,安装WebPlatformInstaller_x64_en-US,导致了IIS应用被访问时,应用程序池自动关闭的问题。

    1. 查看windows系统日志

    模块 DLL C:Windowssystem32inetsrv ewrite.dll 未能加载。返回的数据为错误信息。

    WebPlatformInstaller_x64_en-US安装是用来做负载均衡的,所以确实会安装rewrite.dll,但是WebPlatformInstaller_x64_en-US已经卸载了,为什么还要去找rewrite.dll呢。重新安装WebPlatformInstaller_x64_en-US,这次对应路径下有rewrite.dll了,但是windows日志还是报同样的错误。

    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这个负载均衡模块我们在其他客户现场是有使用过的,这次为什么不兼容,还有待进一步探究。

  • 相关阅读:
    Windows API—CreateEvent—创建事件
    C++的注册和回调
    Python内置模块-logging
    使用 C++ 处理 JSON 数据交换格式
    Python生成器
    5.Spring-Boot缓存数据之Redis
    6.Spring-Boot项目发布到独立的tomcat中
    7.Spring-Boot自定义Banner
    8.Spring-Boot之SpringJdbcTemplate整合Freemarker
    9.Spring-Boot之Mybatis-LogBack-Freemarker
  • 原文地址:https://www.cnblogs.com/zhangdk/p/iiserror.html
Copyright © 2011-2022 走看看