2013-03-18 100 views
0

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

感谢,

回答

3

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

不知道您正在运行的是哪个版本的Windows,但是您可以从控制面板获得计划任务。

Create a Scheduled Task on XP

Create a Scheduled Task on Windows 7

+0

这是在Windows上执行定时服务的好方法 – Alex 2013-03-18 21:25:03

0

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

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