【IIS】应用程序池回收

前言

在Core3.0+sqlSugarCore5.0.0.15,提示Invalid operation.

经一圈百度后,怀疑到数据库连接池上,继而怀疑到IIS程序池上。

参考的博文

如何设置IIS程序池的回收时间,才能最大程度的减少对用户的影响?

https://www.cnblogs.com/sky6699/p/7124615.html

应用程序池提供服务的进程关闭时间超过了

https://blog.csdn.net/chensirbbk/article/details/6435795

IIS回收情况说明

https://blog.csdn.net/starfd/article/details/53641413

IIS自动回收解决方案

https://www.cnblogs.com/qqhewei/p/13408146.html

IIS回收的方式

默认配置

这是默认情况下的IIS回收设置,可以看到有“固定时间间隔”、“固定请求数量”、“特定时间”、“虚拟内存使用情况”和“专用内存使用情况”五项设置,

如果进行了相应设置,当项目运行中任意一项满足了回收设置条件,IIS就会进行回收

高级配置

当然实际会导致IIS回收的并不只有这五项,点击“高级设置”

配置页面如下

回收

1.其中,生成回收事件日志条目,配置写入系统日志

对应前面"正在回收..."

2.说明

ISAPI报告了非正常状态:对应故障部分,指的是web程序运行过程中没有处理的异常情况,这种时候一般能在“事件查看器”中找到对应的错误日志

超出请求限制:对应“固定请求数量”设置

超出虚拟内存限制:对应“虚拟内存使用情况”设置

固定时间间隔:对应“固定时间间隔”设置

手动回收:这个不多说了,就是人为的触发回收,对应第一张图“应用程序池任务”的“回收”部分

特定时间:对应“特定时间”设置

已超出专用内存限制:对应“专用内存使用情况”设置

应用程序池配置已更改:这个对应的情况最多,包括web.config配置变更(包括部分通过configSource方式独立出去的配置,如connectionStrings,继承自System.Configuration.IConfigurationSectionHandler的自定义配置,但不包括继承自System.Configuration.ConfigurationSection的自定义配置,注意你在iis管理器中设置iis配置其实也是在修改web.config)、bin目录下任意文件发生变化

3. 回收事件的查看

在windows的事件查看器=>Windows日志=>系统,来源为WAS的日志

有关于应用程序池关闭的日志记录,包含关闭时间以及原因

4.回收的延伸,IIS的回收意味着资源的重新分配,也就是先关闭再打开

(1)在windows的事件查看器=>Windows日志=>应用程序,来源为IIS AspNetCore Module V2的日志

显示为应用被关闭:Application 'MACHINE/WEBROOT/APPHOST/OVERTIME' has shutdown.

(2)在windows的事件查看器=>Windows日志=>应用程序,来源为IIS AspNetCore Module V2的日志

显示为应用被开启:Application 'D:\WebIIS\OverTimeServer\' started successfully.

进程模型

1.关闭时间限制(秒)

关闭进程的时间,默认为90秒

最近有个接口,有次不明原因的关闭,其关闭时间超过了90秒,于是有了个日志

于是将该配置修改为:600,也就是10分钟

2.闲置超时

IIS闲置的时间,默认为20分钟,在此时间范围内无请求,也会被回收

3.最大工作进程数

IIS应用程序的工作进程,默认为1

(1)每个IIS进程大概占用200M内存,需要注意CPU和内存的负载情况
(2)这个就像是负载均衡一样,IIS可以自己分配到不同的进程里面

(3)一个实际例子

查看系统进程

快速故障保护

“故障”(注意这里的“快速故障防护”指的是当IIS短时间内频繁出错时的处理方式,每次web程序出错其实都会导致该应用程序池重启

1.最大故障数

在故障间隔(分钟),发生最大故障数后,也会回收IIS

IIS回收的情景

默认情况下的回收

其他回收

1.“闲置超时

2.“故障”(注意这里的“快速故障防护”指的是当IIS短时间内频繁出错时的处理方式,每次web程序出错其实都会导致该应用程序池重启

posted @ 2021-02-19 16:35  我有我奥妙  阅读(1147)  评论(0编辑  收藏  举报