gpt4 book ai didi

asp.net - 何时使用 HttpApplicationState 而不是 Web.Caching.Cache?

转载 作者:行者123 更新时间:2023-12-04 16:48:21 31 4
gpt4 key购买 nike

当我需要在我的应用程序中缓存某些东西时,我曾经选择 Web.Caching.Cache。但是我遇到了一些使用 HttpApplicationState 的遗留代码。

既然 Web.Caching.Cache 功能更强大、更灵活(似乎更多),那么有没有更好的情况使用 HttpApplicationState 呢??

如果您能向我展示一些示例,我将不胜感激:-)

最佳答案

两者 HttpApplicationStateWeb.Caching.Cache可用于存储可在整个 ASP.Net 应用程序中全局访问的信息。但是,它们有非常不同的用途。
HttpApplicationState用于存储通常不会更改的应用程序数据。它通常位于 Application_Start在 Global.asax 中,当应用程序启动时。我个人并没有经常使用它,但我相信它通常用于存储小块应用程序配置,这些应用程序配置对应用程序的所有用户都是全局的,并且不会更改或很少更改。进入应用程序状态的东西将无限期地保留在那里,直到应用程序回收。但是当它回收并再次启动时,Application_Start将再次执行并重新填充它。

需要注意的是HttpApplicationState是单例,不是线程安全的。因此,当您对其进行更改时,您必须通过调用 Application.Lock() 来锁定和解锁 Application 对象。和 Application.UnLock() . Read more

实际上有三种不同的方式可以缓存 ASP.Net 内容:页面级别、部分页面和数据。我将谈论数据缓存,因为我认为这与您的问题最相关。 ASP.Net 缓存用于存储大量应用程序数据,从每个请求的数据存储中检索这些数据的成本很高。 HttpApplicationState之间的主要区别和 Cache 是 1) 缓存数据旨在通过各种触发器或条件(时间、其他缓存依赖项等)过期并从内存中清除,而 HttpApplicationState将永远存在,直到应用程序回收,并且 2) 如果服务器遇到严重的内存压力,可以从内存中清除缓存数据,因此您永远不能指望它在那里,必须始终测试以查看它是否存在,而HttpApplicationState将永远在那里。

缓存用于存储更接近应用程序的数据,不需要在每次请求时从数据库中提取。缓存旨在存储大量数据,智能缓存架构可以对性能产生巨大的积极影响。

关于asp.net - 何时使用 HttpApplicationState 而不是 Web.Caching.Cache?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10747714/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com