Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果web应用程序有挂起的长时间运行的请求,IIS是否会回收应用程序池?_C#_Iis_Long Polling_Application Pool - Fatal编程技术网

C# 如果web应用程序有挂起的长时间运行的请求,IIS是否会回收应用程序池?

C# 如果web应用程序有挂起的长时间运行的请求,IIS是否会回收应用程序池?,c#,iis,long-polling,application-pool,C#,Iis,Long Polling,Application Pool,简介 我正在使用ASP.NET MVC 3,C#开发一个web应用程序,目标是IIS 7.0+。我们有许多长时间运行的异步请求(利用AsyncController/async操作特性)。我还经常使用HttpRuntime.Cache(并且使用一些非标准的方式,这在这里并不重要) 问题 如果存在活动的长时间运行的请求,IIS应用程序池是否可以突然回收?我希望尽可能防止这种行为,因为我不想丢失缓存中的数据 我真的需要使用一些持久性存储(即数据库)来克服可能出现的问题吗?通常,IIS不会回收由于处于非

简介

我正在使用ASP.NET MVC 3,C#开发一个web应用程序,目标是IIS 7.0+。我们有许多长时间运行的异步请求(利用AsyncController/async操作特性)。我还经常使用HttpRuntime.Cache(并且使用一些非标准的方式,这在这里并不重要)

问题

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


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

通常,IIS不会回收由于处于非活动状态而有挂起请求的应用程序。但是,如果您点击内存或CPU树,IIS可以回收您的应用程序。但这是您可以在IIS管理控制台中配置的内容。

当触发回收时,会有一个默认为90秒的“关闭时间限制”。这就是进程必须完成多长时间才能强制关闭。这是通过IIS配置的,除了删除不需要的循环触发器(内存、CPU、时间、计划、请求等)之外,您可能还想将其增加到一个较大的值。

谢谢!一个后续问题:有没有办法在达到负载阈值时防止此类回收?或者至少通过一些事件处理来跟踪它们,以便我可以初步将所有数据保存到永久性存储,并在回收后恢复它们?是的,我认为您可以在应用程序池配置的高级属性中的IIS管理控制台中禁用这些回收。感谢您的建议,但在我的情况下,这还不够,我的请求运行了几个小时。我是服务器所有者,并且永远都是(我对我的代码质量很有信心),所以我刚刚禁用了定期回收。