使用计时器在自托管WCF服务中定期运行

时间:2011-07-29 06:34:27

标签: wcf windows-services timer wcf-client robustness

我知道在IIS内部托管的WCF服务类中定时器并不是一个好主意,因为这些服务器的生命周期很短。从建议here来看,听起来像服务是解决这种情况的最佳方式。

但有没有人尝试在生产中使用自托管服务中的计时器?我们有一个Windows服务作为客户端,并使用计时器进行定期操作。

对于大多数情况来说这很好,但我担心设计的稳健性:一些操作是关键的(财务系统计算触发器)。由于WCF服务和Windows服务是两个组件,因此确保两者都运行是困难的。

如果我将关键操作移动到WCF服务中的计时器,我会删除该问题,但是我还应该关注什么呢?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您的问题实际上是关于IIS托管的WCF服务,是吗?

IIS控制运行WCF服务的应用程序池。这意味着IIS可能决定回收您的应用程序池及其中的所有应用程序/服务。然后,只有客户端调用您的服务后才会再次激活该服务。因此,不能依赖于WCF服务或ASP.NET应用程序中的调度。

如果您可以自托管您的WCF服务,那么当然会更改图片。然后没有要考虑的IIS应用程序池,您可以随意安排。因此,如果您需要WCF +调度的组合,最好创建一个包含两者的Windows服务。