更改ASP.NET缓存项到期的频率?
|
我注意到ASP.NET缓存项每隔20秒进行一次检查(可能被删除)(每次HH:MM:00,HH:MM:20和HH:MM:40时奇怪).我花了大约15分钟,看看如何更改此参数没有任何成功.我也尝试在web.config中设置以下内容,但没有帮助: <cache privateBytesPollTime="00:00:05" /> 我不想做任何事情疯狂,但如果是5秒,而不是20秒,或者至少10次,我的应用程序会很好. 解决方法用Reflector进行调查显示,间隔是硬编码的.有效期由内部CacheExpires类(其静态构造函数)包含_tsPerBucket = new TimeSpan(0,20); _tsPerBucket是只读的,所以不能再有任何修改配置设置. 然后,将在CacheExpires.EnableExpirationTimer()中设置触发检查过期项目的计时器… DateTime utcNow = DateTime.UtcNow; TimeSpan span = _tsPerBucket - new TimeSpan(utcNow.Ticks % _tsPerBucket.Ticks); this._timer = new Timer(new TimerCallback(this.TimerCallback),null,span.Ticks / 0x2710L,_tsPerBucket.Ticks / 0x2710L); 跨度的计算确保定时器正确启动:00,:20,:40秒,尽管我看不到任何理由打扰.定时器调用的方法是内部的,所以我认为没有办法设置自己的定时器来更频繁地调用它(忽略反射). 然而,好消息是,你不应该真的有理由关心间隔. Cache.Get()检查该项目尚未过期,如果该项目已经过期,它将立即从缓存中删除该项目并返回null.因此,即使过期的项目可能会停留在高速缓存中长达20秒,您也不会从缓存中获得过期的项目. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.Net WebAPI中的自定义路由处理程序
- asp.net – SmtpClient.SendAsync调用自动取消
- asp.net – Linq to Sql – 根据环境变量动态设置连接字符串
- asp.net-mvc – ApplicationDbContext – 它在项目中的位置
- asp.net-mvc – 在MVC4中为ViewModel设置默认值的适当方法?
- 在我的应用程序中托管ASP.NET
- asp.net-mvc-5 – OWIN是否调用MVC(ASP.NET MVC)?
- .net – 我应该如何设计一个允许IoC的类库,但不依赖于特定的
- 当调用ASP.NET System.Web.HttpResponse.End()时,当前线程中
- 有哪些工具可用于向ASP.NET项目添加本地化?
- asp.net – 如何在mvc3中对来自@ Html.LabelFor(
- asp.net-mvc-3 – ASP.Net MVC 3,Ninject和Quart
- 数组 – 如何在vbscript中实现具有可变大小的数组
- asp.net – 如何在运行时设置ObjectDataSource选
- asp.net-mvc – ASP.NET MVC切换语言,如何实现?
- ASP.net RequiredFieldValidator不阻止回发
- asp.net – 部署后强制刷新网站
- asp.net-mvc – 更新到MVC 5后,iframe不再有效
- Asp.Net 5分钟实现网页实时监控
- 覆盖ASP.NET WebMethod参数的DateTime序列化
