簡體   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