c# - asp.net BLL 类中的各种缓存选项

标签 c# asp.net caching

Web 应用程序 BLL 层中所有可能的缓存选项\级别是什么

(我知道我们只能在后面的 aspx 和 ascx 代码中使用 Session 字典,对吗?)

最佳答案

session 在 ASP.NET Web 应用程序的任何级别都可以作为存储介质使用,但是访问它所涉及的许多类都是密封的并且不容易模拟(HttpContext、HttpSessionState 等),这被认为是不好的做法让您的业务逻辑“知道”您的应用程序是如何托管的。我建议将任何缓存实现隐藏在通用 ICache 接口(interface)后面,如果您在另一个应用程序中重新使用 BLL,则可以轻松切换。

您可以使用的几个选项是:

使用 HttpContext.Items 的每个请求缓存 (http://www.4guysfromrolla.com/articles/060904-1.aspx)

使用 HttpContext.Session 的 session 缓存(如果您的应用程序是负载平衡的,并且您没有粘性 session ,则必须完成额外的工作以确保一致的 session 状态(例如使用 SqlSessionState))。

使用 HttpContext.Cache 或 HttpRuntime.Cache 的应用程序缓存(同样,如果您的应用程序是负载平衡的并且您没有粘性 session ,则必须完成额外的工作以确保一致的应用程序缓存)。

希望这对您有所帮助。

关于c# - asp.net BLL 类中的各种缓存选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7992149/

相关文章:

asp.net - 使用类似于PHP的Request.Form处理HTML输入元素的数组

asp.net - 调试时观察 session 内容

ios - 如何使用唯一引用在文档中保存url图像

caching - 缓存集和标签

c# - 我们如何在 C# 中以编程方式添加对目录的写访问权限?

c# - C++/C# 解决方案中不可用的任何 CPU

c# - Owin启动类和url

c# - 页面继承

php - 如何在 PHP 文件中使用 etags?

javascript - 我想知道如何在后面的代码中访问我的模态表单元素。另外我想知道如何在模态表单上应用 jquery 验证器