代码之家  ›  专栏  ›  技术社区  ›  Eran Betzalel

如何保持wcf网站在线?

  •  7
  • Eran Betzalel  · 技术社区  · 15 年前

    我在IIs7上有一个wcf站点。很少访问该站点,这会导致应用程序卸载。如何始终保持应用程序(WCF)的正常运行?

    3 回复  |  直到 15 年前
        1
  •  14
  •   Drew Marsh    15 年前

    没有理由停止使用IIS。您所需要做的就是设置应用程序池选项,这样服务就不会因为不活动而关闭。不幸的是,默认值大约是20分钟的不活动时间,不管怎样,每29小时一次。

    我的建议是:

    1. 为您的服务创建一个新的应用程序池。
    2. 创建后,右键单击它并选择“高级设置…”
    3. 在“处理器型号”组下查找“空闲超时(分钟)”设置。将此设置更改为0,使服务永远不会因空闲而关闭。
    4. 如果不希望流程被回收,也可以考虑更改“回收”组下的“常规时间间隔(分钟)”设置。您可以将其设置为若干分钟(如我所说,默认为29小时),也可以将其设置为0,而不是配置“特定时间”设置,以便在一天中的最佳时间(如凌晨4点或其他时间)回收您的服务。如果您运行一个Web场,您将配置该场以交错方式进行回收,以便在任何给定时间内只有一台服务器在回收。

    趣味琐事: 默认回收是29小时的原因是,这将导致每天回收,但每天5小时后,这样一天的时间就永远不会相同。

    有关配置应用程序池的详细信息,请参阅technet上标题为 Managing Application Pools 它涵盖了我上面提到的主题以及其他许多主题。

        2
  •  0
  •   Keith Adler    15 年前

    有几种选择。

    1. 正如Marc_的评论所指出的,您可以在Windows服务甚至应用程序中托管该站点。
    2. 创建一个keep-alive请求,该请求频繁地用请求ping您的站点。

    最后,在.NET Framework 4.0下,您可以选择无限期地保持应用程序的活动状态。我怀疑你在4点0分,但这是一个需要考虑的问题。

        3
  •  0
  •   Nicolas Webb    15 年前

    将其托管在Windows服务中,而不是依赖于IIS(如Marc ou和Nissan的粉丝状态)。

    http://msdn.microsoft.com/en-us/library/ms733069.aspx