按照标题。我希望能够在缓存对象中保存一些数据,但此对象必须对所有用户/会话可用,并且可以过期。
在asp.net网络应用中实现这一目标的最佳方法是什么?
答案 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部分“数据缓存”