应用程序池在 IIS 中关闭期间超过时间限制

当应用程序池在Microsoft Internet Information Services(IIS)关闭期间超过时间限制时,可能会引发意外的运行时错误。

原始产品版本: Internet Information Services 7.0、7.5
原始 KB 数: 2634635

现象

在运行 IIS 7.0 或 7.5 的计算机上,该消息将类似于以下示例:

Log Name: System
Source: Microsoft-Windows-WAS
Date: 1/1/2011 12:00:00 AM
Event ID: 5013
Task Category: None
Level: Warning
Keywords: Classic
User: N/A
Computer: SERVER
Description:
A process serving application pool DefaultAppPool exceeded time limits during shut down. The process id was 1111.

原因

当应用程序池花费的时间长于已配置 ShutdownTimeLimit 属性关闭时,此消息将记录到事件日志中。 超过此时间限制时,将强制关闭和回收工作进程。 将创建事件日志消息。

此消息可能出现在事件日志中,而不会对浏览该应用程序池中托管的网站的最终用户进行任何负面观察行为。 但是,事件的存在表明以下条件之一为 true:

  • 设置为 ShutdownTimeLimit 数字太低。
  • Web 应用程序中出现了问题,阻碍其及时关闭。

注意

IIS 中配置属性的 ShutdownTimeLimit 默认值为 90 秒。

若要解决此问题,请选择以下方法之一。

解决方法 1:增加 ShutdownTimeLimit 值

默认值可能 ShutdownTimeLimit 从默认值 90 秒修改。 应用程序池需要时间才能完全关闭,因为当前在启动关闭时正在处理的任何请求,需要有一定的时间才能完成。 ShutdownTimeLimit设置该值太低可能会导致高流量 Web 应用程序或 Web 应用程序中出现这些错误事件日志警告,这些警告需要一些时间才能完成。

若要修改 ShutdownTimeLimit IIS 7.0 和 IIS 7.5 中的值,请参阅 应用程序池 <processModel> 的进程模型设置。

解决方法 2:排查应用程序池未及时关闭的原因

如前所述,应用程序池中可能出现一些事情。 因此,它不能及时关闭。 最常见的问题之一是现有超文本传输协议(HTTP)请求无法完成。 若要排查应用程序池关闭时间过长的原因,请捕获运行应用程序池的w3wp.exe进程的内存转储(当关闭问题发生时)。

有关捕获 IIS 进程的内存转储的详细信息,请参阅 调试诊断工具 v1.2 现已推出

详细信息

为应用程序池配置回收设置 (IIS 7)