Bru*_*oLM 2 c# iis multithreading timeout
我在一个在IIS上运行的系统上有一个进程,它需要几个小时才能完成,因此它在一个线程上运行.
问题是这个线程在一段时间后被删除,因为IIS进程超时(没有活动).这个线程不能在中间停止.
如果线程正在运行,如何防止此超时?
在IIS中的应用程序池的设置中,您可以将其配置为在一段不活动时间后不回收AppDomain.但请注意,在IIS中使用长时间运行的任务是个坏主意,此设置可能不是100%可靠.例如,如果您的服务器开始运行内存不足或CPU使用率过高,IIS仍然可以回收它.IIRC也可以配置此阈值.
最好的方法是将这些长时间运行的任务外部化为单独的Windows服务.
如果你不能做任何以前的事情,你绝对绝望,你可以尝试完全绝望的最后一件事是通过定期发送HTTP请求来自动ping这个后台线程的Web应用程序,以避免它死亡.但再一次,这应该是你应该尝试的最后一件事.