【问题标题】:Application Pool Goes Down Very Often and Needs Recycling应用程序池经常关闭并需要回收
【发布时间】:2020-02-14 12:07:46
【问题描述】:

我有一个 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% 为空。

IIS 服务器 版本为 7.5 及以下,您可以从应用程序池中看到一些详细信息:

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

知道是什么原因导致我的网络应用如此频繁地下降的频率突然变化吗?

【问题讨论】:

    标签: asp.net-mvc iis-7.5 windows-server-2008-r2 application-pool


    【解决方案1】:

    应用程序池 .NET Version 的值只是 .NET 运行时的版本,而不是 .Net 框架的版本。描述已在 IIS 10 中修改为 .NET CLR 版本。因此 v4.0 是您的 .net 4.5 Web 应用程序的正确 CLR 版本。

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

    1.IIS宕机是什么症状? IIS 挂起?碰撞?还是只是睡着了?

    2.你的工作进程中有多少请求被挂起?您在访问网站时看到了什么错误信息?

    3.如果存在worker进程,进程内部的调用栈如何?您可以通过查看转储文件来研究这一点。

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

    由于这个问题很复杂,更多的内容将有助于我们找出根本原因。

    编辑:

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

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

    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。

    【讨论】:

    • 感谢您的回答 Jokies。您的回答非常有帮助,并引导我找到并纠正问题的正确路径。您能否就如何实现它的每一点添加更多细节,因为我是新手。提前谢谢!
    • @JohnSp 我扩展了一些细节来解决这个问题。当您遇到应用程序池损坏问题时。检查所有日志文件,事件日志。然后尝试通过 WINDBG 分析转储文件。 google中有一些关于如何分析转储文件的文档。
    【解决方案2】:

    尝试将常规时间间隔(分钟)的值更改为更大的数字。对我来说 1740 是默认值。还可以尝试将您的设置与 DefaultAppPool 进行比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      • 2010-10-02
      • 2010-10-10
      • 2019-12-09
      • 2019-04-12
      • 2011-05-23
      • 2011-09-20
      相关资源
      最近更新 更多