繁体   English   中英

带计时器的自托管WCF服务

[英]Self hosted WCF Service with Timer

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

谢谢,

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

不确定您正在运行的Windows版本,但是可以从“控制面板”中获取计划的任务。

在XP上创建计划任务

在Windows 7上创建计划任务

IIS托管的WCF服务中的计时器“不是一个好主意”的原因是IIS服务的生存期与自托管服务的生存期大不相同。 有关更多详细信息,请参见此SO问题和答案 ;有关更多详细信息,请参见此 MSDN文章

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM