a) 满足下面两个特征的IIS程序池崩溃是本文可以解决的,其崩溃原因是应用程序内部反复报错,一般是短时间超过五次,导致IIS自动关闭程序池。
b) 如果不满足这两个条件,那就不是程序报错导致的,后面的内容也就不用看了。
1、应用池崩溃后,网页访问提示503。
2、查看IIS的Events里有无错误。
通常报错为:
A process serving application pool ‘Classic .NET AppPool’ suffered a fatal communication error with the Windows Process Activation Service. The process id was ‘3328’. The data field contains the error number.
我在Server Manager>IIS>Events下查看,这里是有报错的。
二、查找问题来源并修复
1、下载 DebugDiag 插件
这里我们下载一个插件 Debug Diagnostic Tool (点击此处跳转下载页面),通过这个插件,我们可以在IIS的错误事件发生时捕获更加详细,应用级别的日志。
点击download下载,选择32还是64位,下载msi镜像,下载成功之后安装。
2、配置 DebugDiag 的断点信息
安装成功之后我们打开安装好的 DebugDiag 2 Analysis 程序,按照下面步骤添加断点。
选择“crash (崩溃)”规则。
选择“A specific IIS web application pool (特定 IIS Web 应用程序池)”
选择崩溃的特定应用程序池。
选择“Breakpoint (断点)”
点击“添加断点”
单击 Breakpoint 下的“Ntdll!ZwTerminateProcess”,将其选为 Breakpoint Expression。将 Action Type 更改为“Full userdump”并将 Action Limit 设置为 10,然后单击 OK。
点击保存并关闭。
点击下一步以激活断点。
点击“Next”,配置日志路径
单击“Finish”以激活规则。
您现在会看到崩溃规则处于活动状态并且“Userdump Count”为0。一旦问题发生,转储计数就会增加,并会生成相应的转储文件。
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新