asp.net – 何时使用HttpApplicationState而不是Web.Caching.Cac
当我需要在我的应用程序中缓存一些东西时,我习惯选择Web.Caching.Cache.但我遇到了一些使用HttpApplicationState的遗留代码.
由于Web.Caching.Cache更强大和灵活(似乎更多),是否有更好的使用HttpApplicationState的情况? 如果你能告诉我一些例子,我将非常感激:-) 解决方法
HttpApplicationState和Web.Caching.Cache都可用于存储可在整个ASP.Net应用程序中进行全局访问的信息.但是,它们的用途非常不同.
HttpApplicationState用于存储通常不会更改的应用程序数据.当应用程序启动时,它通常在global.asax中的Application_Start中填充.我个人没有太多使用它,但我相信它通常用于存储应用程序配置的小部分,这些应用程序配置对应用程序的所有用户都是全局的,并且不会很少更改或更改.进入应用程序状态的东西将无限期地保留在那里,直到应用程序回收.但是当它再循环并再次重新启动时,Application_State将再次执行并重新填充它. 重要的是要注意应用程序状态是单例并且不是线程安全的.因此,当您对其进行更改时,必须通过调用Application.Lock()和Application.UnLock()来锁定和解锁Application对象. 实际上有三种不同的方法可以缓存ASP.Net内容:页面级别,部分页面和数据.我将讨论数据缓存,因为我认为这与您的问题最相关. ASP.Net缓存用于存储大量的应用程序数据,这些数据对于每个请求从数据存储中检索都是昂贵的.ApplicationState和Cache之间的关键区别是1)缓存数据被设计为过期并从内存中清除通过各种触发器或条件(时间,其他缓存依赖性等),而ApplicationState将永远存在,直到应用程序回收,2)如果服务器遇到严重的内存压力,可以从内存中清除缓存数据,因此永远不能指望它在那里,必须经常测试它是否存在,而ApplicationState将始终存在. 缓存用于存储更靠近应用程序的数据,不需要在每次请求时从数据库中提取数据.缓存旨在存储大量数据,智能缓存架构可对性能产生巨大的积极影响. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在ASP.NET中上传文件时运行病毒扫描
- asp.net – 使用Ajax,在服务器或客户端生成额外的标记是否更
- asp.net – 链接到页面上的不同区域
- asp.net-mvc – 在ASP.NET MVC 1.0中在HTTP和HTTPS之间切换
- 如何从asp.net调用Windows服务
- asp.net – Page enableEventValidation =“true”错误
- asp.net-mvc – 如何使用EditorForModel()来装饰我的ASP.NE
- asp.net-mvc-3 – 在ASP.NET MVC3中使用List作为Web Grid中
- asp.net-mvc-3 – 在Razor ASP.Net MVC3中使用另一个View中
- asp.net-mvc – StackExchange站点如何关联用户帐户和OpenI