1. 首先不要设置iis自动回收,一般设置凌晨1-2点左右回收一次,当凌晨iis回收应用程序池的时候,会调用Application_End,执行里面的代码,
  2. 重新启动网站,建议定时器的代码放在Session_Start里面,因为
  3. Application_Start只有再第一个用户访问网站的时候才会触发该方法,通常会在该方法里定义一些系统变量,如聊天室的在线总人数统计,
  4. 历史访问人数统计的初始化等等均可在这里定义.所以第一次访问的时候会先进入Application_Start,
  5. 然后再进入Session_Start。但是以后每次访问的时候进入的是Session_Start
  6. 第一个访问网站的用户会触发该方法.
  7. Application_Start()
  8. {
  9. }
  10. //每个用户访问网站的第一个页面时触发;
  11. void Session_Start(object sender, EventArgs e)
  12. {
  13. LogHelper.WriteInfoLog("触发Session_Start事件,准备执行定时任务:" + DateTime.Now);
  14. #region 定时任务
  15. System.Threading.Thread myTimer = new System.Threading.Thread(new System.Threading.ThreadStart(Timer_Write));
  16. myTimer.Start();
  17. #endregion
  18. }
  19. //网站关闭,或重启时,会触发该方法.
  20. void Application_End(object sender, EventArgs e)
  21. {
  22. //下面的代码是关键,可解决IIS应用程序池自动回收的问题
  23. System.Threading.Thread.Sleep(1000);
  24. //触发事件, 写入提示信息
  25. LogHelper.WriteInfoLog("触发Application_End事件,正在重新启动网站:" + DateTime.Now);
  26. //这里设置你的web地址,可以随便指向你的任意一个页面甚至不存在的页面,目的是要激发Session_Start
  27. //使用您自己的URL
  28. string url = "你的网址";
  29. System.Net.HttpWebRequest myHttpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
  30. System.Net.HttpWebResponse myHttpWebResponse = (System.Net.HttpWebResponse)myHttpWebRequest.GetResponse();
  31. System.IO.Stream receiveStream = myHttpWebResponse.GetResponseStream();//得到回写的字节流
  32. }

Quartz定时任务和IIS程序池闲置超时时间冲突解决方案

一、问题描述

  Bs项目中用Quartz功能执行一个定时任务(每隔5分钟执行一个Job),正常情况,Quartz定时任务会5分钟执行一次,但IIS程序池闲置

超时默认为20分钟,造成的结果是:定时任务只执行了4次。那么怎么解决程序池闲置超时引进Quartz定时任务停止执行问题?

二、解决方案
方案一:设置IIS默认闲置超时为1740(跟程序池默认回收时间1740)
方案二:IIS服务器规定的时间内,定时向服务器取一次数据

三、方案介绍
1)方案一:设置IIS默认闲置超时为1740(跟程序池默认回收时间1740)
  通过设置程序池--高级设置--模型设计--闲置超时,设置为1740(29小时)

原理:改变IIS程序池闲置超时时间,设置为1740(29分钟),保证不会出现闲置超时而执行的资源清理
前提:需保证这个网站一天有一个访问量就不会触发到iis闲置超时而执行的资源清理

2)方案二:IIS服务器规定的时间内,定时向服务器取一次数据

  那就是保持有一台机器开着,在这个Application下写一个文件,用JavaScript每隔几分钟(小于程序池默认闲置超时时间)就自我刷新一下,

浏览器一直开着,这样就强制让它处于被访问的状态。但这个方法并不稳定

原理:强制让它处于被访问的状态,不会出现闲置导致问题
前提:保证浏览器开着,js设置定时方法设置为小于闲置超时时间

PS:

解决方案介绍来自这个网址:http://blog.csdn.net/zhangquanok/article/details/16807603

平时多记记,到用时才能看看,记录你的进步,分享你的成果

C# 因IIS回收导致定时器失效的解决方案的更多相关文章

  1. IIS进程回收导致定时器失效的一种解决办法

    公司开发的网站使用的.net,网站中用到了定时器,放在Global.asax.cs文件中,但由于IIS设置了网站进程定期回收,回收后定时器也就没了.如果不让进程回收,又担心程序中有内存泄露.有人说可以 ...

  2. VS2019打开旧项目导致引用失效的解决方案

    用VS2019打开VS2015创建的MVC项目时所有引用全部失效: 解决方案: 打开项目的csproj文件,删除 Target节点,在重新打开项目. <Target Name="Ens ...

  3. Asp.Net程序目录下文件夹或文件操作导致Session失效的解决方案

    1.配置web.config <system.web> <sessionState mode="StateServer" stateConnectionStrin ...

  4. SQL SERVER 中is null 和 is not null 将会导致索引失效吗?

    其实本来这个问题没有什么好说的,今天优化的时候遇到一个SQL语句,因为比较有意思,所以我截取.简化了SQL语句,演示给大家看,如下所示 declare @bamboo_Code varchar(3); ...

  5. Jquery方法load之后导致js失效解决方法

    Jquery方法load之后导致js失效解决方法 >>>>>>>>>>>>>>>>>>> ...

  6. varnish屏蔽control+F5导致缓存失效

    刚刚接触Varnish缓存,对静态资源进行缓存.目前问题,当浏览器Control+F5刷新页面,导致缓存失效. 参照:http://zhangxugg-163-com.iteye.com/blog/1 ...

  7. 索引法则--LIKE以%开头会导致索引失效进而转向全表扫描(使用覆盖索引解决)

    Mysql 系列文章主页 =============== 1 准备数据 1.1 建表 DROP TABLE IF EXISTS staff; CREATE TABLE IF NOT EXISTS st ...

  8. excel身份证验证(附带防止粘贴导致校验失效的函数)

    一.检验函数 =IF(LEN(A1)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT("1:17" ...

  9. vector源码(参考STL源码--侯捷):空间分配导致迭代器失效

    vector源码1(参考STL源码--侯捷) vector源码2(参考STL源码--侯捷) vector源码(参考STL源码--侯捷)-----空间分配导致迭代器失效 vector源码3(参考STL源 ...

随机推荐

  1. Kernel Memory Layout on ARM Linux

    这是内核自带的文档,讲解ARM芯片的内存是如何布局的!比较简单,对于初学者可以看一下!但要想深入理解Linux内存管理,建议还是找几本好书看看,如深入理解Linux虚拟内存,嵌入系统分析,Linux内 ...

  2. ASP入门(八)-Request对象

    Request是ASP的耳朵,它可以获得客户端传递来的消息. BinaryRead方法和TotalBytes属性 用于以二进制方式读取客户端的请求,比如处理通过客户端上传文件时,通常使用这个方法来读取 ...

  3. IT行业简报 2014-2-8

    1.微信在“我的银行卡”页面接入嘀嘀打车,三天内微信打车突破10万单,日均订单为70万,其中微信支付订单超过48万单2.三大运营商手机支付用户仅366.3万,与腾讯单月发展手机支付用户500万户相比, ...

  4. Spring Integration概述

    1.   Spring Integration概述 1.1     背景 Spring框架的一个重要主题是控制反转.从广义上来说,Spring处理其上下文中管理的组件的职责.只要组件减轻了职责,它们同 ...

  5. Centos7中ELK集群安装流程

    Centos7中ELK集群安装流程   说明:三个版本必须相同,这里安装5.1版. 一.安装Elasticsearch5.1   hostnamectl set-hostname elk vim /e ...

  6. 【转】Window 通过cmd查看端口占用、相应进程、杀死进程等的命令

    转自:http://blog.csdn.net/jiangwei0910410003/article/details/18967441 一. 查看所有进程占用的端口  在开始-运行-cmd,输入:ne ...

  7. Android使用OKHttp库实现视频文件的上传到服务器

    目录 1 服务器接口简介 2 Android端代码实现 2.1 xml布局文件 2.2 Activity类 2.3 Okhttp网络通信类 1 服务器接口简介 此处我使用的服务器接口是使用Flask编 ...

  8. 如何删除Android studio中的注解代码

    http://blog.csdn.net/maimiho/article/details/52195081 先看下上面的文章.只是换下正则表达式即可 正则表达式:/\*[\s\S ]*

  9. 【Excle】一个比VLOOKUP牛的函数LOOKUP

    1.根据时间查找最近发生的交易 2.多条件查找 3.反向查找 4.模糊匹配 上述例子充分说明了LOOKUP的查找特技,点击下载上述案例对应的Excle

  10. 激光数据匹配(MATLAB Robotics System Toolbox)

    正态分布变换算法是一个配准算法,它应用于三维点的统计模型,使用标准最优化技术来确定两个点云间的最优的匹配,因为其在配准过程中不利用对应点的特征计算和匹配,所以时间比其他方法快.算法细节可以参考:NDT ...