当前位置: 代码迷 >> ASP.NET >> 大局类计划任务
  详细解决方案

大局类计划任务

热度:6010   发布时间:2013-02-25 00:00:00.0
全局类计划任务
我写了一个定时任务
在全局类文件中代码如下
C# code
void Application_Start(object sender, EventArgs e)    {        //在应用程序启动时运行的代码        WebSiteRootPath = Server.MapPath("~");        System.IO.File.AppendAllText(WebSiteRootPath + "\\log.txt", "Application_Start 开始:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + Environment.NewLine);           System.Timers.Timer myTimer = new System.Timers.Timer(60000);                  myTimer.Elapsed += new System.Timers.ElapsedEventHandler(doJob);        myTimer.Enabled = true;        myTimer.AutoReset = 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)    {         //用来监测程序池回收        System.IO.File.AppendAllText(WebSiteRootPath + "\\log.txt", "Application_Ent 会话结束:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + Environment.NewLine);        //在会话结束时运行的代码。         // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为        // InProc 时,才会引发 Session_End 事件。如果会话模式         //设置为 StateServer 或 SQLServer,则不会引发该事件。        System.Threading.Thread.Sleep(1000);        //这里设置你的web地址,可以随便指向你的任意一个aspx页面甚至不存在的页面,目的是要激发Application_Start              //使用您自己的URL             string url = "http://www.云阳面坊.com/";        System.Net.HttpWebRequest myHttpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);        System.Net.HttpWebResponse myHttpWebResponse = (System.Net.HttpWebResponse)myHttpWebRequest.GetResponse();        System.IO.Stream receiveStream = myHttpWebResponse.GetResponseStream();    }


并且设置了sessionstate 模式,配置文件代码为:
XML code
  http://go.microsoft.com/fwlink/?LinkId=169433  --><configuration>    <system.web>        <compilation debug="true" targetFramework="4.0"/>    <sessionState mode="InProc" />    </system.web></configuration>

但是定时任务并没有按照预期的任务,数据更新了一部分后就没有更新了

用来监测程序回收问题的文件内容为:
Application_Start 开始:2012-04-07 09:02:25
Application_Ent 会话结束:2012-04-07 09:22:40
Application_Ent 会话结束:2012-04-07 09:55:40
Application_Ent 会话结束:2012-04-07 09:59:20
Application_Start 开始:2012-04-07 10:21:55

我认为问题出在 会话结束后没有激发页面


请各位高手帮忙看看
原因是什么

是哪里出错了吗?

------解决方案--------------------------------------------------------
嗯,把这个“重启”也许说成是“停止”在你这个问题里更合适。没有客户端请求激发页面,asp.net应用是不会自动启动的。
------解决方案--------------------------------------------------------
计划任务还是写成Windows服务比较好,而不是写在ASP.NET的全局代码中。