使用定时器的自托管WCF服务中的周期性操作



我知道在IIS内托管的WCF服务类中设置计时器不是一个好主意,因为这些计时器的生命周期很短。从这里的建议来看,对于这种情况,提供服务似乎是最好的方法。

但是有人尝试在生产中的自托管服务中使用计时器吗?我们有一个windows服务,作为一个客户端,并使用计时器来执行周期性的操作。

这在大多数情况下是可以的,但是我担心设计的健壮性:一些操作是关键的(金融系统计算触发器)。由于WCF服务和windows服务是两个组件,因此很难确保两者都在运行。

如果我将关键操作移动到WCF服务内的计时器,我就消除了这个问题,但是我还应该关心什么呢?

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

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

如果您可以自托管WCF服务,那么情况当然会发生变化。这样就不需要考虑IIS应用程序池,您可以随意调度。因此,如果您需要WCF +调度的组合,最好创建一个包含两者的Windows服务。

最新更新