問題描述 :
我是在Application_Start給網(wǎng)站初始化了一個計時器, 通過這個計時器實現(xiàn)一些特定的定時任務(wù).
問題原因:
把網(wǎng)站部署到IIS上的時候忘記Copy Global.asax文件,
以下是在Application_Start中編碼時需要注意的一些基礎(chǔ)問題,跟次問題無關(guān),只在此說明以下.
1. Application_Start中 HttpContext中的Current對象還沒有初始化,所以無法根據(jù)Request,MapPath獲取到網(wǎng)站相關(guān)的路徑,
如要操作文件,建議在Web.Config AppSetting段加一個配置字段,用來記錄你所訪問的路徑.
2. 另外Timer中程序的執(zhí)行時間小于Timer執(zhí)行間隔時間的時候, 在進(jìn)入Timer執(zhí)行代碼時先停掉Timer, 等代碼執(zhí)行完后在打開Timer.
ex: void timer_Elapsed(object Sender, System.Timers.ElapsedEventArgs e)
{
timer.Stop();
........
Execute Code...
------
timer.Start();
}
影響后果: Timer計時器會多次條用timer, 導(dǎo)致程序邏輯很亂,想看具體結(jié)果的,自己做個Demo做測試就知道了.
Flyear ASP.Net技術(shù)交流群
13159246 (QQ群號)