Web定時任務

iDotNetSpace發表於2009-02-12

想在Web中定時 處理某些任務吧?
可以在Global.asax 中定義,直接上例子:

<script runat="server">
    
void Application_Start(object sender, EventArgs e) 
    {
       
       
// 應用程式啟動時
       System.Timers.Timer timer = new System.Timers.Timer();
       DateTime sTime 
= DateTime.Now;
       
int sHour = sTime.Hour;
       
int sMin = sTime.Minute;
       
int sSecond = sTime.Second;
       
int sHourInterval = 15 - sHour;
       
int sSecondInterval = sHourInterval * 60 * 60 * 1000;
       
//timer.Interval = 1000*5;//5秒傳送一次
       timer.Interval = sSecondInterval;
       
//timer.AutoReset;
       timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
       timer.Enabled 
= true;

    }
    
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
        
string s_from = "fengsheng@xxx.com";
        
string s_to = "fengsheng@xxx.com";
        
string pwd = "1234567";
        
string s_body = "test";
        
string s_smtp = "mail.xxx.com";
        
int i = s_from.IndexOf("@");
        
string s_subjetc = "test";
        
string username = s_from.Substring(0, i);
        System.Net.Mail.MailAddress from 
= new System.Net.Mail.MailAddress(s_from);
        System.Net.Mail.MailAddress to 
= new System.Net.Mail.MailAddress(s_to);
        System.Net.Mail.MailMessage mailobj 
= new System.Net.Mail.MailMessage(from, to);
        mailobj.Subject 
= s_subjetc;
        mailobj.Body 
= s_body;

        mailobj.IsBodyHtml 
= true;
        mailobj.BodyEncoding 
= System.Text.Encoding.GetEncoding("GB2312");
        mailobj.Priority 
= System.Net.Mail.MailPriority.High;
        System.Net.Mail.SmtpClient smtp 
= new System.Net.Mail.SmtpClient();
        smtp.Host 
= s_smtp;
        smtp.UseDefaultCredentials 
= true;
        smtp.Credentials 
= new System.Net.NetworkCredential(username, pwd);
        smtp.Send(mailobj);
    }
script>

上面 是一個定時發郵件的小例子,一舉兩得,還給大家了一個發郵件的例子 ,呵呵
建議最好是把需要啟動的事項 做成 web Service 這樣 應用範圍會更廣~

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-548885/,如需轉載,請註明出處,否則將追究法律責任。