问题描述 :
我是在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做测试就知道了.