IIS7自动回收线程和定时器,怎么解决这个问题
线程和定时器写在Application_Start方法里面过一段时间就停止打印log日志,在网上查资料说是IIS自动回收引起的,刚好20分钟就停止了。
该怎么解决呢,很急很急。
定时器: //执行间隔时间,单位为毫秒 1800000 30分钟
System.Timers.Timer myTimer = new System.Timers.Timer(1800000);
myTimer.Elapsed += new ElapsedEventHandler(myTimer_Elapsed);
myTimer.Enabled = true;
myTimer.AutoReset = true;
//开启时钟。
myTimer.Start();
//定时晚上11点多执行一次
//时
int intHour = (int)Convert.ToInt64(DateTime.Now.Hour.ToString());
//分
int intmin = (int)Convert.ToInt64(DateTime.Now.Minute.ToString());
if (intHour == 23 && intmin <= 59)
{
if (!DateTime.Now.ToString("yyyyMMdd").Equals(times) || "".Equals(times))
{
LOG.Info(DateTime.Now + ":------【执 行 定 时 任 务】" + times);
times = DateTime.Now.ToString("yyyyMMdd");
//运行定时程序
YourTask();
LOG.Info(DateTime.Now + ":------【完 成 定 时 任 务】" + times);
}
}
--------------------编程问答-------------------- 写一个Windows Services
放在iis里面,时间长不运行就会回收的 --------------------编程问答-------------------- 同意上面的,用windows service 写自定义job --------------------编程问答-------------------- 写一个windows service在windows2008上面运行不起来,
报错是sybase的驱动问题,32位驱动和64位驱动都不行,只能写在程序里了。
况且农行不让写service服务,快到部署时间了,在网上找了很多方法,都不行。 --------------------编程问答-------------------- 什么任务啊,不能直接放sql里吗 --------------------编程问答-------------------- 是一个线程,一直在扫描数据库中的表,扫描待发送的信息;
还有个定时器,定时删除7天前的数据。
不能放到sql里面,要用到Sybase数据库的驱动。 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 可以在application pool中设置不回收。
也可以发个request给自己以阻止回收。 --------------------编程问答--------------------
前者参考:
http://hi.baidu.com/hisgp/item/31a64511f4778eff9c778abf
后者参考:
http://www.veryhuo.com/a/view/9186.html --------------------编程问答-------------------- 可以在application pool中设置不回收
设置不回收,这里有很大的漏洞,内存一直增长,到最后服务器还崩了呢。是农行的服务器,干么?
也可以发个request给自己以阻止回收
阻止回收我也试了,没用的,打印日志是回收了,但是起不来了,我指向的是我的登录页面,还是不行。
希望高手能提供个有效的解决方案。 --------------------编程问答-------------------- 楼主 我觉得你现在解决第一个问题比解决第二问题要容易得多;
写一个windows service在windows2008上面运行不起来,
报错是sybase的驱动问题,32位驱动和64位驱动都不行 这个问题可以再看看有什么解决方案!
补充:.NET技术 , ASP.NET