开发者

Is the HttpContext.Current.Cache available to all sessions

As per title. I want to be able to save some data in a cache object but this object must be available to all users/sessions and can expire.

What is the best method to a开发者_JS百科chieve this in a asp.net web app?


HttpContext.Current is available to all pages, but not necessarily to all threads. If you try to use it inside a background thread, ThreadPool delegate, async call (using an ASP.NET Async page), etc., you'll end up with a NullReferenceException.

If you need to get access to the cache from library classes, i.e. classes that don't have knowledge of the current request, you should use HttpRuntime.Cache instead. This is more reliable because it doesn't depend on an HttpContext.


HttpContext.Current.Cache will be present, but Current should only be used if you cant get to your context member.

Also to answer your second question, yes, the Cache object is global to the application.

Here's a good intro to caching...

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

and...

Caching with ASP.NET . Don't skip part 2, "Data Caching"

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜