在我的网络服务中花费大约一个半小时来完成工作我正在使用Task.Factory.Run()
方法对其进行处理,而我的网络服务位于default application pool
IIS
内在VM机器上。大约30分钟后,我的WebService停止工作。我去了windows事件日志,默认的应用程序池是因为工作线程不活动而在20分钟后关闭。
那么这是否意味着这就是我的WebService也停止工作的原因?如果是,他们为什么认为它不活跃?是因为Task.Factory.Run()
?
答案 0 :(得分:1)
这确实是原因。 Web服务处于非活动状态,因为它没有收到任何请求。
WebServices
应该是请求和响应的无状态层,由应用程序池处理。如果需要执行长期处理,则应在不同的过程中执行此操作(例如,您排队的Windows服务使用WCF进程间通信)。