ASP.NET如何定時呼叫WebService服務

hanchuang213發表於2017-03-17

原地址:http://www.jb51.net/article/73103.htm

在ASP.NET程式中,可以通過Time元件實現定時器功能,但是它與資料庫中的任務計劃不一樣,它必須基於程式正在執行中才可生效,而資料庫任務計劃是不需要基於ASP.NET程式執行而執行任務。

下面是一個實際案例:

某個專案有一個需求,需要定時去呼叫別家公司的一個Web 系統的 WebService,把他們系統中的資料匯入到我們的系統中。由於是呼叫 Web 介面,這就無法使用資料庫中的任務計劃實現了。後來想到使用Time 元件,利用Global 中的Application。

using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.SessionState; 
using System.Xml.Linq; 
   
namespace MyNet 
{ 
 public class Global : System.Web.HttpApplication 
 { 
   
  protected void Application_Start(object sender, EventArgs e) 
  { 
   System.Timers.Timer timer1 = new System.Timers.Timer(); 
   timer1.Interval = 30000; // 30000 毫秒 = 30秒 
   timer1.Elapsed += new System.Timers.ElapsedEventHandler(Time1_Elapsed); 
   timer1.AutoReset = true; 
   timer1.Enabled = true; 
   timer1.Start(); 
  } 
   
  protected void Session_Start(object sender, EventArgs e) 
  { 
   
  } 
   
  protected void Application_BeginRequest(object sender, EventArgs e) 
  { 
   
  } 
   
  protected void Application_AuthenticateRequest(object sender, EventArgs e) 
  { 
   
  } 
   
  protected void Application_Error(object sender, EventArgs e) 
  { 
   
  } 
   
  protected void Session_End(object sender, EventArgs e) 
  { 
   
  } 
   
  protected void Application_End(object sender, EventArgs e) 
  { 
   
  } 
   
  void Time1_Elapsed(object source, System.Timers.ElapsedEventArgs e) 
  { 
   localhost.MyWebService ws = new localhost.MyWebService(); 
   ws.InsertMyWebService(); 
  } 
 } 
}

備註:不會受多個使用者使用系統的影響,但必須最少有一個使用者在使用系統,否則定時器程式不會執行。

以上內容介紹了ASP.NET如何定時呼叫WebService服務的方法,希望對大家的學習有所幫助。


相關文章