[英]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.