在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服務的方法,希望對大家的學習有所幫助。
新聞熱點
疑難解答
圖片精選