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