IIS是否关闭托管服务?我怎么能防止这种情况?

时间:2010-07-30 09:51:05

标签: iis-7 wcf

我想在IIS 7中托管一个WCF服务。我不熟悉这个主题,但是一位同事确保我会在一段时间(“天”)之后关闭托管服务,无论如何什么。

IIS何时会自动关闭我的服务?如何设置它以使它们始终保持运行(即使它们没有做任何实际工作)?

2 个答案:

答案 0 :(得分:3)

IIS中的Web服务作为拥有应用程序池的应用程序托管。通常这些池被设置为定期回收自己 - 这样你的服务就会重新启动。

在应用程序池设置中(在inetmgr-console内),可以取消激活这些循环(在“高级设置” - >“循环配置”下)。

关于故障恢复,在这些设置中也存在配置它们的可能性,但我不确定它们是否真的按照您的期望进行。

最后,我建议您通过IIS外部的主机应用程序作为系统服务来托管您的服务,然后可以将其配置为自动重新启动并创建日志条目。通常,WCF服务的设计时间不会超过请求所需的时间。在我们的一个项目中,我们在认识到IIS的问题后完全做到了这一点,这使我们的工作更轻松......

答案 1 :(得分:2)

IIS可以随时卸载服务的AppDomain以节省内存。

如果请求进入服务的端点,IIS将重新加载该服务,并且将正常处理该请求。

就服务而言,这与服务器重新启动没什么不同。

如果您的服务需要运行(不仅仅是倾听)以便执行某种后台处理,这只会是一个问题。
如果是这样,您应该编写正常的Windows服务而不使用IIS。