码迷,mamicode.com
首页 > Web开发 > 详细

解决.net定时器在iis7上不执行问题

时间:2016-01-05 18:10:32      阅读:1435      评论:0      收藏:0      [点我收藏+]

标签:

今天第一次在博客园发帖,以前一直在潜水,在这里也是学了不少东西。感谢各位园友

废话不多说,这也是我工作中遇到的问题:

protected void Application_Start(object sender, EventArgs e)
        {
            // 创建一个计时器,单位:毫秒 
            System.Timers.Timer myTimer = new System.Timers.Timer(60*60*1000); //设置时间为5秒,便于测试(单位毫秒)
            myTimer.Elapsed += new System.Timers.ElapsedEventHandler(myTimer_Elapsed);
            myTimer.Enabled = true;
            myTimer.AutoReset = true;
        }
        //计时器方法
        protected void myTimer_Elapsed(object source, System.Timers.ElapsedEventArgs e)
        {
            //可以设置时间点执行
            if (DateTime.Now.Hour != 1)
            {
                return;
            }
        }

 

在Global.asax文件中创建了定时器,时间设置在晚上一点执行方法,测试的时候将时间改为5秒是正常运行没问题的,正式使用的时候确没见到效果,后来发现是方法根本没有执行

通过网上查找资料发现是iis的进程回收机制导致,当程序闲置时间超过20分钟(iis默认是20分钟),进程将会被回收,这样方法就不会执行了,解决办法暂时有两个,一、iis配置,打开发布在iis上的网站应用池,查看属性,修改闲置超时(一般改为1440)这样就可以了,二、在服务器上挂一个该网站的页面,加一段定时刷新的js(一般20分钟),这样不让网站闲置也可以解决进程回收的问题

解决.net定时器在iis7上不执行问题

标签:

原文地址:http://www.cnblogs.com/zxayxh1314/p/5103111.html

(2)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!