在线程上关闭非活动应用程序池
本文关键字:应用 应用程序 程序池 非活动 线程 | 更新日期: 2023-09-27 18:08:29
在我的web服务中,大约需要一个半小时才能完成工作,我在Task.Factory.Run()
方法中进行处理,我的web服务在虚拟机的IIS
中的default application pool
中。大约30分钟后,我的WebService停止工作了。我去了windows事件日志,它的默认应用程序池是在20分钟后关闭,由于工作线程不活动。那么这是否意味着这就是我的WebService停止工作的原因呢?如果是,他们为什么认为它是不活跃的?是因为Task.Factory.Run()
吗?
这确实是原因。web服务不活动,因为它没有收到任何请求。
WebServices
应该是请求和响应的无状态层,由应用程序池处理。如果你需要执行长期处理,你应该在一个不同的进程中完成它(例如,一个windows服务,你排队工作,使用WCF进程间通信)。