【问题标题】:iis idle timeout and long running request on wcf serviceiis 空闲超时和 wcf 服务上的长时间运行请求
【发布时间】:2014-07-26 22:24:07
【问题描述】:

我必须实现通过对 wcf 方法的请求启动的长时间运行进程(在应用程序启动时不启动进程) 我现在认为这是错误的解决方案,最好是 windows serwis 或其他长时间运行的进程,但对于我的情况,这是不可能的。我必须使用托管在 IIS 上的 wcf servis。 我阅读了有关 appdomain 回收的信息,但我无法弄清楚 Idle Timeout - 如果请求运行超过 20 分钟,则 appdomain 会重新启动。我知道在应用程序启动中启动后台任务时会出现此问题。

我的 appdomain 会在什么时候被杀(空闲超时设置为 20 分钟)。 它是启动一个长时间运行的请求,之后将不再是另一个请求。

当进程在应用程序启动 IIS 中启动时,对此任务一无所知,这对我来说很清楚,在这种情况下 appdomain 已关闭

20 分钟后 IIS 是否会杀死 appdomain,除了那个 eier 请求仍在运行?我很困惑,因为 IIS 知道仍在运行的请求,并且可能不这样做。

什么是真的?

【问题讨论】:

    标签: wcf iis


    【解决方案1】:

    是的,IIS 将终止该进程,因为它在滚动的请求范围内工作,而不是正在运行的内容。解决此问题的一种方法可能是让 Web 服务请求本身在运行时不断地 ping 服务器,让它知道它仍在运行。但总的来说,当没有请求进来时,IIS 会杀死它的进程。

    直接取自 MSDN:工作进程在完成其现有请求的处理后或在配置的超时后关闭,以先到者为准。

    在你的情况下,如果你的进程比超时时间长,你的进程将永远不会完成。

    【讨论】:

      最近更新 更多