ASP.NET中的Global中使用Timer代码
System.Timers.Timer timer = new System.Timers.Timer(60001);
void Application_Start(object sender, EventArgs e)
{
timer.Elapsed += new System.Timers.ElapsedEventHandler(t_Elapsed);
timer.Enabled = true;
timer.Start();
WriteMrssage("kaishi");//是在网站根目录下创建一个txt文件,格式是yyyy-mm-dd-时-秒-ss.txt
}
public void t_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
//每天早上5点发邮件
}
如上我发布完成后放在公司服务器上(网络环境是在域内的,通过远程连接访问,使用属于administrator的账号),重启IIS(2003系统),没有生成txt,注销了我的用户在局域网内其他计算机上访问改网站,生成了txt文件
1.这里我很是奇怪,为什么非要访问以下网站,才会执行Global文件呢?
2.但是第二天邮件依然没有发送,登陆网站后,发现又生成了TXT文件,这神马情况,确定服务器没有重启,难道IIS重启了?很是蛋疼,但是如果让邮件立马发送(只发送一次)这样就可以接收到!!
用windows service 做这样的事毕业论文
Asp.net网站的特性是要第一次访问才开始执行的。
Timer是WinFrom的组件,没尝试过是否能在Asp.net运行过。
建议你还是用线程做吧。
Application_Start,表示应用程序启动时候执行的事件,也就是web程序部署好后,开始运行了执行的事件,在web不重启的情况下,只会运行一次,所以,只有在第一次访问时候,才会执行这个事件,注意:第一次时候web程序开始启动。
然后,为什么不发邮件,你看看是不是你的timer控件使用错误,导致没有执行timer的事件。跟踪下。