HttpContext.Current.Cache是​​否可用于所有会话

时间:2010-05-04 02:44:03

标签: asp.net caching

按照标题。我希望能够在缓存对象中保存一些数据,但此对象必须对所有用户/会话可用,并且可以过期。

在asp.net网络应用中实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:20)

HttpContext.Current可用于所有页面,但不一定适用于所有线程。如果您尝试在后台线程,ThreadPool委托,异步调用(使用ASP.NET异步页面)等中使用它,则最终会得到NullReferenceException

如果您需要从库类(即不了解当前请求的类)访问缓存,则应使用HttpRuntime.Cache。这更可靠,因为它不依赖于HttpContext

答案 1 :(得分:5)

将出现

HttpContext.Current.Cache ,但只有在无法访问上下文成员时才应使用Current。

同样回答第二个问题,是的,缓存对象是应用程序的全局问题。

这是一个很好的缓存介绍......

How to cache in ASP.NET by using Visual C# .NET

和...

Caching with ASP.NET 。不要跳过第2部分“数据缓存”