C# 因IIS回收导致定时器失效的解决方案
- 首先不要设置iis自动回收,一般设置凌晨1-2点左右回收一次,当凌晨iis回收应用程序池的时候,会调用Application_End,执行里面的代码,
- 重新启动网站,建议定时器的代码放在Session_Start里面,因为
- Application_Start只有再第一个用户访问网站的时候才会触发该方法,通常会在该方法里定义一些系统变量,如聊天室的在线总人数统计,
- 历史访问人数统计的初始化等等均可在这里定义.所以第一次访问的时候会先进入Application_Start,
- 然后再进入Session_Start。但是以后每次访问的时候进入的是Session_Start
- 第一个访问网站的用户会触发该方法.
- Application_Start()
- {
- }
- //每个用户访问网站的第一个页面时触发;
- void Session_Start(object sender, EventArgs e)
- {
- LogHelper.WriteInfoLog("触发Session_Start事件,准备执行定时任务:" + DateTime.Now);
- #region 定时任务
- System.Threading.Thread myTimer = new System.Threading.Thread(new System.Threading.ThreadStart(Timer_Write));
- myTimer.Start();
- #endregion
- }
- //网站关闭,或重启时,会触发该方法.
- void Application_End(object sender, EventArgs e)
- {
- //下面的代码是关键,可解决IIS应用程序池自动回收的问题
- System.Threading.Thread.Sleep(1000);
- //触发事件, 写入提示信息
- LogHelper.WriteInfoLog("触发Application_End事件,正在重新启动网站:" + DateTime.Now);
- //这里设置你的web地址,可以随便指向你的任意一个页面甚至不存在的页面,目的是要激发Session_Start
- //使用您自己的URL
- string url = "你的网址";
- 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();//得到回写的字节流
- }
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回收导致定时器失效的解决方案的更多相关文章
- IIS进程回收导致定时器失效的一种解决办法
公司开发的网站使用的.net,网站中用到了定时器,放在Global.asax.cs文件中,但由于IIS设置了网站进程定期回收,回收后定时器也就没了.如果不让进程回收,又担心程序中有内存泄露.有人说可以 ...
- VS2019打开旧项目导致引用失效的解决方案
用VS2019打开VS2015创建的MVC项目时所有引用全部失效: 解决方案: 打开项目的csproj文件,删除 Target节点,在重新打开项目. <Target Name="Ens ...
- Asp.Net程序目录下文件夹或文件操作导致Session失效的解决方案
1.配置web.config <system.web> <sessionState mode="StateServer" stateConnectionStrin ...
- SQL SERVER 中is null 和 is not null 将会导致索引失效吗?
其实本来这个问题没有什么好说的,今天优化的时候遇到一个SQL语句,因为比较有意思,所以我截取.简化了SQL语句,演示给大家看,如下所示 declare @bamboo_Code varchar(3); ...
- Jquery方法load之后导致js失效解决方法
Jquery方法load之后导致js失效解决方法 >>>>>>>>>>>>>>>>>>> ...
- varnish屏蔽control+F5导致缓存失效
刚刚接触Varnish缓存,对静态资源进行缓存.目前问题,当浏览器Control+F5刷新页面,导致缓存失效. 参照:http://zhangxugg-163-com.iteye.com/blog/1 ...
- 索引法则--LIKE以%开头会导致索引失效进而转向全表扫描(使用覆盖索引解决)
Mysql 系列文章主页 =============== 1 准备数据 1.1 建表 DROP TABLE IF EXISTS staff; CREATE TABLE IF NOT EXISTS st ...
- excel身份证验证(附带防止粘贴导致校验失效的函数)
一.检验函数 =IF(LEN(A1)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT("1:17" ...
- vector源码(参考STL源码--侯捷):空间分配导致迭代器失效
vector源码1(参考STL源码--侯捷) vector源码2(参考STL源码--侯捷) vector源码(参考STL源码--侯捷)-----空间分配导致迭代器失效 vector源码3(参考STL源 ...
随机推荐
- mke2fs 制作ext2文件系统image
方法1: 利用/dev/ram1: linux下有很多ram,我们用ram1,首先把ram1格式化成ext2文件系统[root@gucuiwen babylinux]# sudo mkfs.ext ...
- TeamView提示商业用途禁止使用
一.问题 TM被提示商业用途,用一会就断开连接,或者是提示五分钟后关闭 二.解决思路 2.1:删除原来的TM信息 首先需要卸载TM,其次需要去注册表,运行→regedit,打开注册表,删除相关的tea ...
- Python标准库:内置函数type(object)
type(object) type(name, bases, dict) 本函数是返回对象的类型对象.仅仅有一个參数object时,直接返回对象的类型对象.假设仅仅是想推断一个对象是否属于某一个类的对 ...
- WinForm 之 VS2010发布、打包安装程序
第一步.在vs2010 打开要打包的应用程序解决方案,右键“ 解决方案 ” → “ 添加 ” → “ 新建项目 ” → “ 其他项目类型 ” → “ 安装和部署 ” → “ Visual Studio ...
- 电脑的fn锁,f1-f12与功能键 互换
提要: 有些机子特别逆天,比如说Thinkpad e系列.好好的f1-f12一定要加上fn才能按出来,默认的是画在上面的功能键,作为娱乐来说其实是还不错的,但是像我等程序员就觉得特别逆天了.你有两个选 ...
- 微软BI 之SSAS 系列 - 在 SQL Server 2012 下查看 SSAS 分析服务的模型以及几个模型的简单介绍
在SSDT中部署一个 SSAS 项目到本地服务器上出现错误. You cannot deploy the model because the localhost deployment server i ...
- 第二周 Word版面设计
第二周 Word版面设计 教学时间 2013-3-5 教学课时 2 教案序号 1 教学目标 1.能正确设置纸张.版心.视图.分栏.页眉页脚2.掌握节的概念并能正确使用 教学过程: 新课 要使一篇文档美 ...
- HttpLuaModule——翻译(一)
最近经常使用春哥和小哲老师写的NGINX-LUA,非常苦于没有中文文档,特别是向我这种英文水平实在有限的同学,所以将遇到的模块记录下来,供以后参考!原文:http://wiki.nginx.org/H ...
- JEECG中的validform验证ajaxurl的使用方法
validform验证是一种非常方便的,实用的验证方式 对于需要验证后台数据的,validform是一个非常明智的选择 validform的ajaxurl属性能够完美的实现:当输入完成某一输入框,就会 ...
- IDEA引入外部jar包的方法
在做发短信的功能(阿里大于)的时候,我只是吧jar包拷贝到了项目的external library. 拷贝进来之后我用junit写了test方法,可以完美发送短信到手机,但是我这是个web项目,然后我 ...