【问题标题】:Self hosted WCF Service with Timer带计时器的自托管 WCF 服务
【发布时间】:2013-03-19 05:20:09
【问题描述】:

我正在关注this 示例来创建自托管的 WCF 服务。理想情况下,如果某个值在数据库中更新,我希望服务与计时器连接每半小时检查一次,如果是,服务将执行一些任务,否则将每半小时检查一次。我在网上读到过,在 IIS 托管的 WCF 中使用计时器不是一个好主意,在自托管的 wcf 服务上使用它怎么样?有什么例子吗?

谢谢,

【问题讨论】:

    标签: c# .net wcf


    【解决方案1】:

    我认为对您来说更好的选择是创建一个简单的控制台应用程序,如果值已更新,该应用程序将执行您的任务,然后在 Windows 中创建一个计划任务,该任务每半小时运行一次此控制台应用程序。这样您就可以让 Windows 管理计时部分,您只需编写检查数据库并在必要时更新它的代码。

    不确定您运行的是哪个版本的 Windows,但您可以从控制面板访问计划任务。

    Create a Scheduled Task on XP

    Create a Scheduled Task on Windows 7

    【讨论】:

      【解决方案2】:

      IIS 托管的 WCF 服务中的计时器“不是一个好主意”的原因是 IIS 服务的生命周期与自托管服务的生命周期大不相同。有关详细信息,请参阅此SO question and answer 和此MSDN article for even more details

      如果在超时期限内没有人连接到 WCF 服务,则基本上可以“关闭”托管在 IIS 中的服务。如果您需要像您所描述的那样进行定期定期维护,您将需要使用自托管服务并让该服务启动一个计时器,该计时器在其OnStart() 调用中每半小时触发一次。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-07
        • 1970-01-01
        相关资源
        最近更新 更多