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

Asp.net HttpContext.Current.Cache是否可用于所有会话,asp.net,caching,Asp.net,Caching,按照标题。我希望能够在缓存对象中保存一些数据,但该对象必须对所有用户/会话可用,并且可能会过期 在asp.net web应用程序中实现这一点的最佳方法是什么?适用于所有页面,但不一定适用于所有线程。如果您试图在后台线程、委托、异步调用(使用ASP.NET异步页面)等内部使用它,那么最终会遇到一个错误 如果需要从库类(即不知道当前请求的类)访问缓存,则应使用。这更可靠,因为它不依赖于。HttpContext.Current.Cache将存在,但只有在无法访问上下文成员时才应使用Current 还要

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

在asp.net web应用程序中实现这一点的最佳方法是什么?

适用于所有页面,但不一定适用于所有线程。如果您试图在后台线程、委托、异步调用(使用ASP.NET异步页面)等内部使用它,那么最终会遇到一个错误

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

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

还要回答第二个问题,是的,缓存对象对于应用程序是全局的

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

而且


。不要跳过第2部分“数据缓存”

@Aaronnout-我不确定除了访问HttpContext.Current之外还有什么区别,因为HttpContext.Current.Cache返回HttpRuntime.Cache。@Aaronnout-我想你是说不必依赖HttpContext.Current实际上就是这个优势?@Thomas:
HttpContext.Current.Cache
只是指向与HttpContext.Current.Cache相同的缓存无论如何,HttpRuntime.Cache,但是前者引入了一个中间依赖项,有可能在以后破坏某些东西。在这里搜索“HttpContext NullReferenceException”,你就会明白我的意思了……嗯。好啊我从未遇到过引用HttpContext.Current的错误,但根据我所读的内容,我会购买HttpRuntime.Cache是一个更好的选择+1.4GuysFromRolla-哇,这是过去的爆炸:-)。自2002年以来,ASP.Net中的缓存真的没有变化吗?