1

介绍

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

问题

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

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

4

2 回答 2

1

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

于 2012-07-19T09:03:54.550 回答
1

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

于 2012-07-19T17:42:46.170 回答