非活动应用程序池在线程上关闭

时间:2014-06-12 22:29:50

标签: c# asp.net .net iis-7 task-parallel-library

在我的网络服务中花费大约一个半小时来完成工作我正在使用Task.Factory.Run()方法对其进行处理,而我的网络服务位于default application pool IIS内在VM机器上。大约30分钟后,我的WebService停止工作。我去了windows事件日志,默认的应用程序池是因为工作线程不活动而在20分钟后关闭。 那么这是否意味着这就是我的WebService也停止工作的原因?如果是,他们为什么认为它不活跃?是因为Task.Factory.Run()

1 个答案:

答案 0 :(得分:1)

这确实是原因。 Web服务处于非活动状态,因为它没有收到任何请求。

WebServices应该是请求和响应的无状态层,由应用程序池处理。如果需要执行长期处理,则应在不同的过程中执行此操作(例如,您排队的Windows服务使用WCF进程间通信)。