2017-06-14 72 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