我必须实现长时间运行的进程,该进程通过请求启动到wcf方法(在应用程序启动时不启动进程) 我现在认为这是错误的解决方案,对于长时间运行的过程,更好的是Windows serwis或其他东西,但对于我的情况,这是不可能的。我必须使用IIS上托管的wcf servis。 我读到有关appdomain回收的问题,我无法弄清楚闲置超时的事情 - 如果请求运行超过20分钟,则appdomain重新启动。我知道在应用程序启动时启动后台任务时会出现此问题。
当我的appdomain kill时(空闲超时设置为20分钟)。 它启动一个长时间运行的请求,之后将不是另一个请求。
当在应用程序启动过程中启动IIS时,没有人知道此任务,这对我来说很明显,在这种情况下appdomain已关闭
在20分钟后,IIS杀死appdomain,除了那个eier请求还在运行吗?我很困惑,因为IIS知道仍在运行请求,而且mayby不会这样做。
什么是真的?
答案 0 :(得分:0)
是的,IIS会终止进程,因为它可以处理请求的滚动范围,而不是正在运行的请求。解决这个问题的方法可能是在运行时让Web服务请求本身不断ping服务器以让它知道它仍在运行。但总的来说,当没有请求进入时,IIS将终止其进程。
直接从MSDN获取:工作进程在完成处理现有请求后或在配置的超时后(以先到者为准)关闭。
在您的情况下,如果您的流程超过超时,您的流程将永远不会完成。