应用程序池经常宕机,需要回收

Application Pool Goes Down Very Often and Needs Recycling

我有一个 C# ASP.NET MVC 应用程序 (MVC V.4 & .NET Framework 4.5)
运行 在 Windows Server 2008 R2 S.P.1 Datacenter 作为 应用程序池 并且在上个月开始每 3 天下降一次并且池需要 回收又要上去了。
一个月前很少下降,就像每 4-5 下降一次,突然间情况发生了变化。我没有更改服务器上的任何内容,也没有任何其他类型的更新。 C: Disk 50% empty.

IIS Server version is 7.5 and below you can see应用程序池中的一些详细信息:

我在应用程序池上看到一些东西,根据我的逻辑似乎有点奇怪,这是 .NET Framework 版本,它是 v4.0 但在我的项目中是 v4 .5.但这甚至在一两个月前也是如此。

知道是什么原因导致我的网络应用程序如此频繁地停止运行的频率突然发生变化吗?

尝试将 Regular Time Interval(minutes) 的值更改为更大的数字。对我来说 1740 是默认值。同时尝试将您的设置与 DefaultAppPool 进行比较。

应用程序池.NET Version 的值只是.NET runtime 的版本,而不是.Net framework 的版本。说明已修改为 IIS 10 中的 .NET CLR 版本。因此 v4.0 是适用于您的 .net 4.5 Web 应用程序的正确 CLR 版本。

要找出应用程序池关闭的原因,您需要检查以下内容。

1.What 是IIS 宕机的症状? IIS挂了?碰撞?还是只是睡着了?

2.How 许多请求都挂在你的工作进程中?您在访问该网站时看到了什么错误信息?

3.Ifworker进程存在,进程内部调用栈如何?您可以通过查看转储文件对此进行研究。

4.Please 检查您的 IIS 日志以找到最后一个成功的请求和第一个失败的请求。

这个问题比较复杂,多一些可以帮助我们找出根本原因。

编辑:

  1. 当您的应用程序池出现故障时。您可以再次访问该网站并监控症状

  2. 您可以在添加角色和功能->网络服务器->健康和诊断->请求监视器中启用工作进程监视器。然后你会在IIS管理器->服务器节点->工作进程中看到它。单击站点名称将告诉您应用程序池中有多少并发请求

  3. 您可以使用调试诊断工具 https://www.microsoft.com/en-us/download/details.aspx?id=58210 或 procdump 收集转储文件。要分析转储文件,您可以使用 WIN10 SDK WINDBG 和 mex 扩展名。如果你不是转储分析专家,你可以尝试调试诊断工具分析

  4. 您可以在C:\inetpub\logs\LogFiles找到IIS登录。如果请求在 http.sys 端被阻止,您可以检查 C:\Windows\System32\LogFiles\HTTPERR.