Is the HttpContext.Current.Cache available to all

2020-05-31 21:16发布

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 achieve this in a asp.net web app?

2条回答
唯我独甜
2楼-- · 2020-05-31 21:54

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"

查看更多
做自己的国王
3楼-- · 2020-05-31 21:56

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.

查看更多
登录 后发表回答