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源 ...
随机推荐
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十七)Elasticsearch-6.2.2集群安装,组件安装
1.集群安装es ES内部索引原理: <时间序列数据库的秘密(1)—— 介绍> <时间序列数据库的秘密 (2)——索引> <时间序列数据库的秘密(3)——加载和分布式计算 ...
- Spring(十三):使用工厂方法来配置Bean的两种方式(静态工厂方法&实例工厂方法)
通过调用静态工厂方法创建Bean 1)调用静态工厂方法创建Bean是将对象创建的过程封装到静态方法中.当客户端需要对象时,只需要简单地调用静态方法,而不需要关心创建对象的具体细节. 2)要声明通过静态 ...
- Intercepting a 404 in IIS 7 and up
Lately I've been working on a system that needs to serve flat files, which is what IIS is very goo ...
- Git创建分支/GIT提交分支
git clone xxx.git cd fwspp-react git init touch README.md git add README.md git commit -m "add ...
- [PureScript] Break up Expressions into Cases in PureScript using Simple Pattern Matching
Pattern matching in functional programming languages is a way to break up expressions into individua ...
- pip通过requirements.txt安装依赖
pip install -t . -r requirements.txt requirements.txt Keras==2.0.8 gensim torchvision opencv-python ...
- 微信小程序 - 自定义swiper dots样式(非组件)
自定义须知: :组件内无法使用自定义样式变化,需要自定义 :原理就是利用swiper change事件与下标index匹配,显示不同的样式 swiper组件须知: :一旦swiper用于组件化,就 ...
- Using a Microsoft Account to Logon and Resulting Internet Communication in Windows 8
Using a Microsoft Account to Logon and Resulting Internet Communication in Windows 8 此主题尚未评级 - 评价此主题 ...
- 低危漏洞- X-Frame-Options Header未配置
原文链接:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/X-Frame-Options?redirectlocale=en-US&redi ...
- APP注册邀请码
小火箭:MrZOpba685OMLSpanBKFtkxcQf5eGOY 文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言.评论