繁体   English   中英

WCF服务应用程序计时器

[英]WCF Service Application Timer

我有一个带有REST服务的WCF服务应用程序项目,该项目的InstanceContextMode设置为Single。 它包含一个计时器,我想用它定期检查和检查注册。

直到有人第一次调用该服务,计时器才会启动。 我想知道的是,ASP.NET网站中是否存在某种超时,如果没有人使用它一段时间,IIS将停止该服务,否则计时器将继续运行。

[ServiceContract]
public interface IRegistrationService
{
    [OperationContract, WebGet...]
    void Register(...);
}

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class RegistrationService : IRegistrationService
{
    private Timer timer;
    public RegistrationService()
    {
        this.timer = new System.Timers.Timer(1000 * 60 * 5);
        this.timer.Elapsed += OnTimerElapsed;
        this.timer.Start();
    }

    private void OnTimerElapsed(object sender, ElapsedEventArgs e)
    {
        // 
    }
}

它将继续运行,直到主机应用程序启动并运行。 如果您的服务托管在IIS中,并且禁用了“保持活动”功能,则它将被关闭,但是如果使用Winforms或Windows Service主机,则对象将一直存在,直到关闭应用程序为止。 要关闭此对象,请使服务为Disposable,并在timerElapsed之后处置该类。

暂无
暂无

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

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