在WEB开发时,定时执行某任务有了新答案 忘记说了这是在Global.asax处理的 <% @ Application Language = " C# " %> <% @ import Namespace = " System.IO " %> < script runat = " server " > void Application_Start( object sender, EventArgs e) ... { // 在应用程序启动时运行的代码 System.Timers.Timer myTimer = new System.Timers.Timer(10000); myTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent); myTimer.Interval = 10000; myTimer.Enabled = true; } void Application_End( object sender, EventArgs e) ... { // 在应用程序关闭时运行的代码 } void Application_Error( object sender, EventArgs e) ... { // 在出现未处理的错误时运行的代码 } void Session_Start( object sender, EventArgs e) ... { // 在新会话启动时运行的代码 } void Session_End( object sender, EventArgs e) ... { // 在会话结束时运行的代码。 // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer // 或 SQLServer,则不会引发该事件。 } private static void OnTimedEvent( object source, System.Timers.ElapsedEventArgs e) ... { //间隔时间执行某动作 //指定日志文件的目录 string fileLogPath = AppDomain.CurrentDomain.BaseDirectory + "/SystemLog/"; string fileLogName = "SoftPrj_CN_" + DateTime.Now.ToLongDateString() + "_log.txt"; //定义文件信息对象 FileInfo finfo = new FileInfo(fileLogPath + fileLogName); //创建只写文件流 using (FileStream fs = finfo.OpenWrite()) ...{ //根据上面创建的文件流创建写数据流 StreamWriter strwriter = new StreamWriter(fs); //设置写数据流的起始位置为文件流的末尾 strwriter.BaseStream.Seek(0, SeekOrigin.End); //写入错误发生时间 strwriter.WriteLine("发生时间: " + DateTime.Now.ToString()); //写入日志内容并换行 //strwriter.WriteLine("错误内容: " + message); strwriter.WriteLine("错误内容: "); //写入间隔符 strwriter.WriteLine("---------------------------------------------"); strwriter.WriteLine(); //清空缓冲区内容,并把缓冲区内容写入基础流 strwriter.Flush(); //关闭写数据流 strwriter.Close(); fs.Close(); } } </ script >