当前位置:编程学习 > C#/ASP.NET >>

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给自己以阻止回收。 --------------------编程问答--------------------
引用 7 楼 findcaiyzh 的回复:
可以在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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,