asp.net中的while循环意外停止



我有一个应该运行120分钟的循环,但是它总是在大约20分钟后突然停止。

我代码:

var sw = new Stopwatch();
sw.Start();
int tineout = 120 * 60000;
while (sw.ElapsedMilliseconds < tineout)
{
}
w.Stop();
return;

默认情况下,IIS将在20分钟空闲时间后杀死你的应用程序池线程,以节省资源。如果不断收到请求,线程将保持活动状态。在本例中,"idle"意味着没有新的HTTP请求,所以即使你还在工作,从这个超时的角度来看,它仍然是空闲的。

你可以改变这个;20分钟只是默认设置。或者你可以使用UpTime Robot这样的免费服务来设置监控站点,以发送(和报告!)定期请求,从而防止应用程序池闲置。无论如何你都应该这么做。

但是也许你最好考虑一种不同的方式来执行这个长时间运行的任务。

最新更新