asp.net-mvc - 应用程序池经常宕机并需要回收

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

我有一个在 Windows Server 2008 上运行的 C# ASP.NET MVC 应用程序(MVC V.4 和 .NET Framework 4.5)
R2 S.P.1 Datacenter
作为应用程序池,在上个月开始每 3 天下降一次,池需要回收才能再次上升。
一个月前,这种情况很少下降,比如每 4-5 周一次,但突然间这种情况发生了变化。我没有更改服务器上的任何内容,也没有进行任何其他类型的更新。 C: 磁盘 为 50% 空。

IIS Server 版本为 7.5 及以下,您可以从应用程序池中看到一些详细信息:< br/> enter image description here

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

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

最佳答案

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

enter image description here

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

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

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

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

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

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

编辑:

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

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

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

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

关于asp.net-mvc - 应用程序池经常宕机并需要回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58434835/

相关文章:

asp.net-mvc - 带有asp.net mvc 4和EntityFramework的ViewModels的重点是什么

javascript - 使用 JavaScript 的经典 ASP 会出现 500 错误

c# - 页面可以选择退出 IIS 7 压缩吗?

javascript - Windows 2008 上的 JSON 语法错误

c# - MVC5 的 "Generic"包装器 - Controller ?

javascript - 在强类型 View 中渲染 Ajax 接收到的数据

c# - 为什么 WebClient.OpenRead 在 Windows Server 2008 R2 上超时

css - MVC3 Web 应用程序 - IIS7 Windows Server 2008 R2 - CSS 问题

c# - 区域注册在 MVC Razor 中不起作用

asp.net - 当 url 包含 4 个或更多路径段时,MVC 3 中的 404 不会触发 Application_Error