如果Web应用程序有待处理的长期运行请求,IIS是否会回收应用程序池

时间:2012-07-19 08:58:57

标签: c# iis long-polling application-pool

简介

我正在使用ASP.NET MVC 3,C#开发一个Web应用程序,目标是IIS 7.0+。我们有许多长时间运行的异步请求(利用AsyncController / Async动作功能)。我也经常使用HttpRuntime.Cache(并且以某种非标准的方式在这里并不重要)。

问题

如果存在活动的长时间运行请求,是否可以突然回收IIS应用程序池?我希望尽可能防止这种行为,因为我不想丢失缓存中的数据。

我是否真的需要使用一些持久存储(即数据库)来克服可能的问题?

2 个答案:

答案 0 :(得分:1)

通常情况下,由于不活动时间,IIS不会回收具有待处理请求的应用程序。但是,如果达到内存或CPU阈值,IIS可以回收您的应用程序。但这是您可以在IIS管理控制台中配置的内容。

答案 1 :(得分:1)

当触发循环时,存在“关闭时间限制”,默认为90秒。这是在强制关闭之前进程必须完成的时间。这可以通过IIS进行配置,除了删除非期望的回收触发器(内存,CPU,时间,计划,请求等)之外,您可能希望将此值增加到较大值。