本文主要探讨了客户端闪退到登录界面的原因,分析了由服务器“K3Cloud”站点和应用程序池重启、回收、停止或崩溃导致的情况,并特别指出IIS配置更改、应用程序池定时回收和崩溃等具体因素。此外,还提供了调整应用程序池回收设置的建议和应用程序池崩溃时的问题排查方法。
一、问题背景
客户端闪退问题,是一个比较容易遇到的问题,它有几种表现:
1、所有客户端退出到登录界面。
2、个别客户端退出到登录界面。
3、个别客户端退出,完全消失不见。
本文主要分析第一种情况。
二、原因分析
1、所有客户端闪退到登录界面,直接原因是服务器上“K3Cloud”站点和应用程序池出现重启、回收、停止或崩溃导致。不论哪种情况,操作系统的事件查看器里通常都有对应的日志记录。导致ASP.NET站点重启的10个原因这篇文件分析了事件查看器里常见的几类情况,这些情况都可导致客户端闪退。
2、以增加IIS端口绑定为例,它会触发站点重启,日志记录信息说明是IIS配置更改导致。
_shutDownMessage=IIS configuration change
HostingEnvironment initiated shutdown
HostingEnvironment 导致关闭
3、应用程序池定时回收导致的客户端闪退,建议应用程序池回收设置参考下图:
设置后除特定的时间(示例是0点)外,其他时间不会有应用程序池回收,避免固定间隔1740分钟导致的白天应用程序池回收
4、除了以上10类情况外,还有一类特别的情况:应用程序池崩溃。
应用程序池崩溃时,日志通常在“事件查看器-Windows日志-系统”下,来源为WAS、事件ID5013、详细消息:
为应用程序池“K3Cloud”提供服务的进程在关闭过程中超出时间限制。该进程 ID 为“***”。
崩溃的原因多种多样,比如程序未处理异常直接抛出、二开代码死循环、数据异常等。
一般出现这类问题时,建议先回顾下近期做过的变更,比如是不是BOS调整了单据设置、增加了值更新、实体服务规则、PYTHON脚本等,很可能就是这些内容考虑不周引发了错误。
如果无法定位到问题,则需要尝试在闪退时抓取DUMP分析了。下载 Crash_Auto_Caputre 文件在对应电脑执行,后续关注脚本提示的文件夹是否有DUMP文件生成。如有则可分析DUMP文件尝试定位问题
推荐阅读