asp.net - IIS 工作进程在第一次请求时永远挂起

标签 asp.net iis worker-process

我正在努力解决困扰我几天的问题。每次我的一个网站重建或 AppPool 被回收时,第一个页面加载将永远挂起(好吧,我只等了 30 分钟)。它只发生在大约 10 个站点中的一个特定站点上。它是一个 ASP.NET 站点。

这是我观察到的事情:

  • 在工作进程下的 IIS 管理器中,我可以看到请求。 Verb = GET,Sate = ExecuteRequestHandler,模块名称 = ManagedPipelineHandler。当然,耗时一直在增加。
  • 如果我关闭发出初始请求的浏览器,然后打开一个新浏览器发出另一个请求,页面将立即加载。
  • 在我的代码中,第一次请求时不会调用 Global.asax 文件的 Application_Start。它在第二个请求时被调用。
  • 工作进程导致我机器上的内存使用量飙升

我在排除 IIS 故障方面缺乏经验,但经过数小时的搜索却一无所获。

我们最近在网站上所做的唯一主要代码更改是我们开始使用 log4net 实现日志记录。我已经尝试从我的 web.config 文件和 Global.asax 中删除任何 log4net 代码 - 仍然没有成功。

有没有其他人遇到过这种情况,如果有,您是如何解决的?

我们将不胜感激任何帮助。

添加: 如果我将一个 .txt 文件放在站点的根目录中,并将其作为构建后的第一件事加载,它将立即加载。 然而,工作进程仍然像以前一样运行,内存使用率仍然很高。

最终编辑:

我觉得自己像个白痴。我无法解释原因,但出于某种原因,我在 Global.asax 中的断点突然被击中,我能够确定问题所在。这是通过写得很糟糕的 Entity Framework 调用数据库——即过滤是在提取了相关列中的所有行之后完成的。更糟糕的是,过滤是在 foreach 循环内完成的。不管怎样,现在一切都恢复正常了,我很高兴。

最佳答案

可能是显而易见的,但您在 app_start 的全局 asax 中没有任何可能导致此问题的愚蠢代码?

听起来像是无限循环之类的?

关于asp.net - IIS 工作进程在第一次请求时永远挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10737845/

相关文章:

asp.net - IIS - 无法通过 ip 地址而不是 localhost 访问页面

ASP.NET Web Garden - 我需要多少个工作进程?

nservicebus - Rebus 和分布式工作人员

c# - 在行命令中获取 Gridview 的内容

asp.net - 当开发环境不在域上时,如何在域上测试 ASP 应用程序?

asp.net - Javascript 对象未在慢速连接上初始化

c# - 如何从*代码隐藏*强制 IE 9 进入 IE8 兼容模式

C# 不信任已安装的证书

java - Axis :faultString:org.xml.sax.SAXParseException:文件过早结束

iis-8 - IIS 8 ASP.NET 4 默认 maxWorkerThreads