IIS应用程序池_缓存回收
本人最近由于公司业务,需要把问卷的问题和答案存入缓存中已提高问卷加载速度,减少数据库压力。 缓存关键代码(公司代码已做封装,这里只贴出关键代码): HttpRuntime.Cache.Insert(key,value,new CacheDependency(dependencyFile),Cache.NoAbsoluteExpiration,slidingExpiration,CacheItemPriority.High,onRemoveCallBack); /// <summary> /// 插入缓存对象(相对过期时间,缓存依赖) </summary> <param name="key"></param> <param name="value"></param> <param name="slidingExpiration">相对过期时间</param> <param name="dependencyFile">文件依赖<param name="onRemoveCallBack">缓存消失之后的处理方法</param> public static void Insert(string key,object value,TimeSpan slidingExpiration,1)">string dependencyFile,CacheItemRemovedCallback onRemoveCallBack) { GenerateFile(dependencyFile); HttpRuntime.Cache.Insert(key,new CacheDependency(dependencyFile),onRemoveCallBack); } ? ? 参考资料文章: ?http://www.cnblogs.com/guohu/p/5209209.html ? IIS可以设置定时自动回收,默认回收是1740分钟,也就是29小时。IIS自动回收相当于服务器IIS重启,应用程序池内存清空,所有数据被清除,相当于IIS重启,在度量快速开发平台服务器端,为了减小数据库负担,内存中暂存了很多信息,不适合频繁的回收,因为回收会造成服务器端所有存在内存中的数据丢失,如果没有及时保存到数据库中,可能导致程序出现问题。而如果系统使用高峰时期,并不适合回收,回收可能导致几十秒IIS无响应,对于正在工作的人员来说,是一种很不好的体验,会以为是网络或者掉线等问题。因此,基于以上的分析,我们需要设置IIS在指定的时间内定时回收。 (图1)? 发生配置更改时禁止回收:如果为True,应用程序池在发生配置更改时将不会回收。 ??? 根据度量平台服务端配置情况看,IIS默认设置的1740分钟回收进程的策略并不合理,因为每1740分钟回收,在过程中可能就处于用户使用系统的高峰时段,为避免可能在高峰时段引起非可控问题,我们建议在每周六深夜(例如晚上1点,2点)进行IIS回收。 ??? 如果我们在IIS应用程序池的高级设置中,进行回收设置,那么只有两种方式进行,一种是固定时间间隔,一种是手动回收。固定时间间隔设置,并不太好在深夜设置,以保证每周周六深夜执行回收。我们推荐采用windows “任务计划程序”配置一个操作系统定时任务执行脚本程序来实现IIS回收,设置方便,也可以灵活调整。 要通过脚本执行IIS的功能,需要在IIS安装配置的时候,勾选上管理工具中的“IIS管理脚本和工具”(见下图)。 用vbs脚本及批处理文件,结合任务计划程序,保证在每周六深夜1点执行IIS回收。
? 用vbs脚本及批处理文件,结合任务计划程序,保证在每周六深夜1点执行IIS回收。 成功用windows计划任务解决IIS定时回收问题。 ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 什么Request.Params [“key”]呢?
- asp.net-mvc-3 – 验证隐藏的字段
- 谈谈Circuit Breaker在.NET Core中的简单应用
- asp.net-mvc – 如何传递列表从控制器到MVC 3中查看
- 为什么System.Attribute的GetHashCode方法需要如此设计?
- asp.net – 检查IE浏览器 – .NET
- asp.net-mvc – asp.net mvc wiki
- asp.net – 允许服务器/ usercontrol上的任何属性/属性
- ABP(现代ASP.NET样板开发框架)系列之二、ABP入门教程详解
- asp.net-mvc – 通过Gitignore递归地包含Nuget DLL