如何在使用ASP.NET构建的Web服务中调度方法调用

时间:2016-12-06 17:16:18

标签: c# asp.net web-services timer

我使用HttpHandler构建了一个RESTful Web服务来访问MSSQL数据库,我需要安排将由用户操作触发的方法调用,即用户在下周17点安排事件,因此负责发送通知的方法将那个时候被解雇了。我使用System.Threading.Timer尝试了以下代码,但它无法正常工作

ServiceAPI s = new ServiceAPI();
//s.CreatePreferences(true, true, true, 3);
TimeSpan alertTime = new TimeSpan(17, 30, 00);
DateTime current = DateTime.Now;
TimeSpan timeToGo = new TimeSpan(00, 01, 00);//alertTime - current.TimeOfDay;
if(timeToGo < TimeSpan.Zero)
{
       return; // time already passed
}
System.Threading.Timer timer = new System.Threading.Timer(x =>
{
       s.SendNotification(true, true, true, 10);
}, null, timeToGo, System.Threading.Timeout.InfiniteTimeSpan);

P.S。我的web服务托管在IIS服务器中。

1 个答案:

答案 0 :(得分:0)

您无法从Web服务项目中执行此操作,您需要一个基于某些预定义计划调用Web服务方法的客户端,您使用的是Windows Azure吗? (如果有的话,那里有一个调度程序功能:https://azure.microsoft.com/ro-ro/services/scheduler/)。