C#进阶-IIS应用程序池崩溃的解决方案

IIS是微软开发的Web服务器软件,被广泛用于Windows平台上的网站托管。在使用IIS过程中,可能会遇到应用程序池崩溃的问题,原因可能有很多,包括代码错误、资源不足、进程冲突等。本文将为大家介绍IIS应用程序池崩溃的问题分析和解决方案。如果您在IIS的Events日志下观察到以下任一事件,那么本文适合您。

遇到这个问题是我在升级项目版本的时候,升级后的版本网页功能虽然可以正常使用,但每隔几分钟程序池就会忽然崩溃,导致访问503报错,我登陆IIS管理器查看,该应用挂载的应用池状态自动变为了Stopped。

iis 000 1024x486 - IIS应用程序池崩溃的解决方案

一、确认程序池崩溃原因

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下查看,这里是有报错的。

iis 001 1024x671 - IIS应用程序池崩溃的解决方案

二、查找问题来源并修复

1、下载 DebugDiag 插件

这里我们下载一个插件 Debug Diagnostic Tool (点击此处跳转下载页面),通过这个插件,我们可以在IIS的错误事件发生时捕获更加详细,应用级别的日志。

iis 002 1024x611 - IIS应用程序池崩溃的解决方案

点击download下载,选择32还是64位,下载msi镜像,下载成功之后安装。

iis 003 - IIS应用程序池崩溃的解决方案

2、配置 DebugDiag 的断点信息

安装成功之后我们打开安装好的 DebugDiag 2 Analysis 程序,按照下面步骤添加断点。

选择“crash (崩溃)”规则。

iis 004 - IIS应用程序池崩溃的解决方案

选择“A specific IIS web application pool (特定 IIS Web 应用程序池)”

iis 005 - IIS应用程序池崩溃的解决方案

选择崩溃的特定应用程序池。

iis 006 - IIS应用程序池崩溃的解决方案

选择“Breakpoint (断点)”

iis 006 - IIS应用程序池崩溃的解决方案

点击“添加断点”

iis 008 - IIS应用程序池崩溃的解决方案

单击 Breakpoint 下的“Ntdll!ZwTerminateProcess”,将其选为 Breakpoint Expression。将 Action Type 更改为“Full userdump”并将 Action Limit 设置为 10,然后单击 OK。

iis 009 - IIS应用程序池崩溃的解决方案

点击保存并关闭。
点击下一步以激活断点。

点击“Next”,配置日志路径

iis 010 - IIS应用程序池崩溃的解决方案

单击“Finish”以激活规则。

您现在会看到崩溃规则处于活动状态并且“Userdump Count”为0。一旦问题发生,转储计数就会增加,并会生成相应的转储文件。

3、复现崩溃场景,查看问题日志

我们复现了出现问题的场景,IIS应用池再次崩溃,网页503无法访问,DebugDiag Tool的“Userdump Count”变为了10,表示程序池崩溃前程序已经出错了10次。

iis 012 1024x698 - IIS应用程序池崩溃的解决方案

我们根据刚刚配置的日志路径,找到对应这个问题应用池的日志文件。

iis 013 - IIS应用程序池崩溃的解决方案

打开日志文件,我们看到了应用运行中的种种报错,找到反复高频报错的点,然后修复即可。

iis 014 1024x756 - IIS应用程序池崩溃的解决方案

我这里有两个异常,一个是Ibatis映射的对象属性没有对上,导致的工厂加载时报错。另一个是空指针异常,因为有个全局变量在全局线程里反复调用,但配置文件里忘记配置了。两个都是因为粗心导致的乌龙问题 = =。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/310661.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

lv13 内核与用户空间

一、内核空间和用户空间 为了彻底解决一个应用程序出错不影响系统和其它app的运行,操作系统给每个app一个独立的假想的地址空间,这个假想的地址空间被称为虚拟地址空间(也叫逻辑地址),操作系统也占用其中固定的一部分…

如何修改Anaconda的Jupyter notebook的默认启动路径

1.打开Anaconda控制台 2.输入下面的命令 jupyter notebook --generate-config 这个命令的作用是生成 Jupyter notebook 的配置文件。如果你是第一次运行,会直接生成这个文件。如果曾经运行过这个命令,就会像下图一样问你时候要覆盖原来的文件。这个时候…

Python集成开发工具

第二章、IDE(PyCharm) 一、设置py文件模板 设置模版 二、格式化代码设置 三、PyCharm运行python源文件的模式 第一次按照何种模式执行测试用例,后续都会按照这种方式去执行 普通模式,unittest模式,pytest模式介绍 四…

4.31 构建onnx结构模型-Tile

前言 构建onnx方式通常有两种: 1、通过代码转换成onnx结构,比如pytorch —> onnx 2、通过onnx 自定义结点,图,生成onnx结构 本文主要是简单学习和使用两种不同onnx结构, 下面以 Tile 结点进行分析 方式 方法一…

可运营的虚拟物品发卡服务的平台,卡密寄售系统,支持自营和商家入驻模式

源码介绍 发卡宝是一个专门为数码卡和虚拟物品发卡服务的平台。我们整合了各种虚拟商品,为卖家提供快捷便利的销售工具,为买家提供可靠安全的购买渠道。卖家可以轻松管理库存、自定义价格和折扣、快速发货,并实时获得销售记录和分析。买家可…

2024主流的免费电脑数据恢复软件EasyRecovery

EasyRecovery绿色版是一款非常专业的电脑数据恢复工具。它可以全面恢复删除丢失数据,能对电脑误删文件恢复、格式化硬盘数据恢复、手机U盘数据恢复等,能恢复包括文档、表格、图片、音视频等各种文件,此版本经过处理,可永久免费使用…

【文生图系列】 Stable Diffusion v1复现教程

文章目录 Stable Diffusion v1环境配置权重下载txt2imgbug超参数 Diffusers 参考 Stable Diffusion v1 stable diffusion是一个潜在的文本到图像的扩散模型,能够在给定任何文本输入的情况下生成照片逼真的图像。 环境配置 https://github.com/CompVis/stable-diff…

阿里云 ACK 云上大规模 Kubernetes 集群高可靠性保障实战

作者:贤维 马建波 古九 五花 刘佳旭 引言 2023 年 7 月,阿里云容器服务 ACK 成为首批通过中国信通院“云服务稳定运行能力-容器集群稳定性”评估的产品, 并荣获“先进级”认证。随着 ACK 在生产环境中的采用率越来越高,稳定性保…

NFS的基本使用

#江南的江 #每日鸡汤:岁月匆匆,时光荏苒,感悟人生路漫漫,不忘初心方得始终。 #初心和目标:和从前的自己博弈。 NFS(存储共享服务) 本文要点摘要: 下面将讨论什么是NFS,如何配置NFS,…

Spring Boot快速搭建一个简易商城项目【完成登录功能且优化】

完成登录且优化: 未优化做简单的判断: 全部异常抓捕 优化:返回的是json的格式 BusinessException:所有的错误放到这个容器中,全局异常从这个类中调用 BusinessException: package com.lya.lyaspshop.exce…

基于metersphere和supper-jacoco 测试覆盖率落地实践

一、背景及目标 背景 1、技术研发流程为测试 提供冒烟用例-开发根据用例自测-提测-开始测试,这一套流程,但是中间开发是否真实执行冒烟,测试并不知晓,而且测试提供冒烟用例是否符合标准也没法进行量化 2、公司产品属于saas产品&…

一.windows2012搭建fpt服务器和常见端口介绍

一.windows2012搭建fpt服务器和常见端口介绍 1.打开防火墙2.创建组2.1打开计算机管理2.2创建组并且设置名称和描述 3.创建用户3.1设置用户密码和名称3.2把用户归属于组3.3把user删除掉3.4点击添加然后点高级3.5点击立即查找选择之前设定的组 4.安装ftp服务器4.1点击添加角色和功…