2017-06-14 71 views
0

我已经在Web服务中创建了一个电子邮件功能,我需要调用该函数并在每天18.30发送电子邮件。我该如何检测当前系统的时间并根据时间调用Web服务。我已经尝试了无限循环方法来比较时间,它的工作原理,但不知何故,我认为这不是一个正确的方法。需要在特定的时间调用Web服务与c#asp.net

while (1 == 1) 
     { 

      DateTime dtNowTime = DateTime.Now; 
      if (dtNowTime.Hour == 18 && dtNowTime.Minute == 30) 
      { 

       int status = 0; 
       status = sending.HelloWorld(); 
       if (status == 1) 
       { 
        Response.Write("<script>alert('Success');</script>"); 
       } 
       else 
       { 

        Response.Write("<script>alert('Fail');</script>"); 
       } 

      } 

     } 

这是我试过到目前为止方法,是一种更好的方式来实现这一目标?

+0

您可以尝试的HttpModule - https://stackoverflow.com/questions/29787600/asp-net-c-run-command-at -specific-interval/29789337#29789337 – Den

+1

好的方法是编写'windows服务',它将触发电子邮件按时发送或使用计时器创建'调度程序'来完成工作。这里是创建[调度程序](http://www.c-sharpcorner.com/article/application-scheduler-service-using-C-Sharp-net-and-xml/)的方法。 –

+0

检查您的托管服务提供商是否提供任何调度程序,如天蓝色的网站提供调度程序设施。 –

回答

0

这不是实现您所寻找的最佳方式。在我看来,你应该在SQL Server管理工作室中创建一个工作,发送电子邮件或使用像Quartz.NET这样的库,它可以保证工作进度和运行时间。还有另外一种方法来保持全局缓存或类似的全局配置文件。尝试SQL作业或Quartz.NET

+0

谢谢,先生。用Quartz.NET完成它 – Chris