c# - IIS 上的大量请求超时

标签 c# asp.net iis

我有一个相当繁忙的网站,每个月的浏览量约为 1000 万。

我的一个应用程序池似乎堵塞了几个小时,我正在寻找一些关于如何解决它的想法......?我怀疑它以某种方式用完了线程,但我不确定如何追溯确定它..?这是我所知道的:

  • 该网站从未“宕机”,但大约 90% 的请求开始超时。
  • 我可以看到大量“HttpException - 请求超时”。在中断期间的日志中
  • 我找不到任何会导致超时的 SQL 错误或代码错误。
  • 超时似乎在所有页面上都是站点范围的。
  • 有一个页面存在错误,会导致该特定页面出现错误。
  • 网站必须重新启动。

网站是 ASP.NET C# 3.5 WebForms..

可能性:

  1. 线程耗尽:我的想法是导致错误的页面可能以某种方式开始阻塞可用线程?
  2. 全局代码错误: 另一种可能性是我的某个静态类在某处存在未发现的错误。这不太可能,因为以前从未发生过,而且我找不到这些类的任何日志错误,但这是有可能的。

更新

我现在已经设法在问题发生时对其进行追踪。页面正在正常加载,但由于某种原因 WebResource.axdScriptResource.axd加载需要一分钟。在性能计数器中,此时我可以看到 ASP.NET Requests Queued 峰值。

最佳答案

我首先要尝试的是 Sam Saffron 的 CPU analyzer tool ,如果有一些常见的事情发生的时间太多/时间太长,它应该会给出指示。部分原因是它不涉及任何更改;只需在服务器上运行即可。

之后,还有其他各种调试工具可用;我们发现 some very ghetto approaches可以非常有效地查看时间花在了哪里(当然,它只会对 10% 的成功结果起作用)。

您当然可以只打开服务器分析工具并拖入各种 .NET/IIS 计数器,这可能会帮助您发现一些东西。

在这三个选项之间,您应该承保:

  • 代码掉入黑洞,永远不会出来(通常与线程相关)
  • 代码正在运行,但速度太慢(通常与数据访问相关)

关于c# - IIS 上的大量请求超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5788276/

相关文章:

ASP.NET 核心 Web API 授权属性返回 404 错误并强制重定向

asp.net - 要求浏览器缓存我们的图像(ASP.NET/IIS)

c# - 意外的元组不等式

c# - 如何在 Visual Studio C# 项目中编译 hlsl 着色器文件

c# - 是否可以通过代码从 System.Web.UI.HtmlControls.HtmlButton 设置类属性?

c# - 更改另一个类中对象的属性?

asp.net - ORA-01036 : illegal variable name/number C# (SqlDataSource) Oracle 11g

asp.net - 什么是流动布局?

iis - 安装了 IIS,但出现空白页面,并且未显示在 Windows 服务列表中

ruby-on-rails - 防止 jRuby on Rails 应用程序与 Puma/IIS 在设定的时间后进入休眠状态