我们正在跟踪使用IIS中托管的远程处理的应用程序中的连接泄漏,以便清除我们在一天的指定时间安排AppPool回收的孤立连接。 但是我没有看到根据时间表发生这种回收的证据 - 我更改了配置数据库属性,因此IIS将记录所有回收,并记录手动回收命令。
什么可能阻止IIS观察时间表?
答案 0 :(得分:4)
当您执行应用程序池回收(按计划)时,将启动新的工作进程(w3wp.exe
)。现有的工作进程保持活动状态以便为现有请求提供服务,然后在不再存在时关闭。所有新请求都将发送到新的工作进程。
您可以检查要回收的应用程序池是否是新的w3wp.exe
进程。您可以使用以下IIS管理脚本执行此操作:
c:>iisapp.vbs
W3WP.exe PID: 5924 AppPoolId: MSSharePointAppPool
W3WP.exe PID: 2840 AppPoolId: Problem Sites - ASP.NET 2.0
W3WP.exe PID: 2576 AppPoolId: DefaultAppPool
W3WP.exe PID: 6076 AppPoolId: ASP.NET 2.0
W3WP.exe PID: 4916 AppPoolId: Problem Sites - ASP.NET 1.1
记下预定回收时间之前和之后的进程ID,以查看它们是否发生变化。
如果cscript不是您的默认WSH脚本主机,则可能需要使用:cscript iisapp.vbs
。
当应用程序池回收时,您还应该在系统事件日志中看到以下事件:
Event Type: Warning
Event Source: W3SVC
Event Category: None
Event ID: 1013
Date: 22/06/2009
Time: 19:18:09
User: N/A
Computer: UK1SRD1602
Description:
A process serving application pool 'ASP.NET 2.0' exceeded time limits during
shut down. The process id was '2788'.
此事件将在Idle timout
(应用程序池属性 - >性能选项卡)中指定的分钟数加上现有工作进程完成任何待处理请求和最后一个请求所需的时间长度后显示ASP.NET应用程序域被拆除(现有的ASP.NET会话将由旧的工作进程提供服务,直到不再存在)。
答案 1 :(得分:0)
要查看事件日志中的所有应用程序池事件,请按照此处的说明进行操作...