【问题标题】:Does IIS shut down hosted services? How can I prevent that?IIS 是否关闭托管服务?我怎样才能防止这种情况?
【发布时间】:2010-07-30 17:58:28
【问题描述】:

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

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

【问题讨论】:

  • 为什么?你想做什么?
  • 我正在尝试处理一个残缺的架构,它给我带来了奇怪的要求。
  • 你应该创建一个普通的服务。

标签: iis-7 wcf


【解决方案1】:

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

在应用程序池设置中(在 inetmgr-console 内),可以停用这些回收(在“高级设置”->“回收配置”下)。

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

最后,我建议您仅通过 IIS 外部的托管应用程序托管您的服务作为系统服务,然后可以将其配置为自动重新启动并创建日志条目。通常,WCF 服务的生命周期不会超过请求所需的时间。在我们的一个项目中,我们正是在认识到 IIS 的问题后才这样做的,这让我们的工作变得更加轻松......

【讨论】:

    【解决方案2】:

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

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

    就服务而言,这和服务器重启没什么区别。

    只有当您的服务需要运行(而不仅仅是侦听)以执行某种后台处理时,这才会成为问题。
    如果是这样,您应该编写一个普通的 Windows 服务,而不是使用 IIS。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-18
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      相关资源
      最近更新 更多