HttpContext. Текущий. Кэш, доступный всем сессиям

Согласно заголовку. Я хочу смочь сохранить некоторые данные в объекте кэша, но этот объект должен быть доступен всем пользователям/сессиям и может истечь.

Что лучший метод должен достигнуть этого в веб-приложении asp.net?

18
задан Ekk 4 May 2010 в 02:44
поделиться

2 ответа

HttpContext.Current доступен для всех страниц, но не обязательно для всех потоков. Если вы попытаетесь использовать его внутри фонового потока, ThreadPool делегата, асинхронного вызова (используя страницу ASP.NET Async) и т.д., вы столкнетесь с NullReferenceException.

Если вам нужно получить доступ к кэшу из библиотечных классов, т.е. классов, которые не имеют представления о текущем запросе, то вместо этого следует использовать HttpRuntime.Cache . Это более надежно, поскольку не зависит от HttpContext.

22
ответ дан 30 November 2019 в 08:21
поделиться

HttpContext.Current.Cache будет присутствовать, но Current следует использовать только в том случае, если вы не можете получить доступ к своему элементу контекста.

Также отвечу на ваш второй вопрос: да, объект Cache является глобальным для приложения.

Вот хорошее введение в кеширование ...

Как кэшировать в ASP.NET с помощью Visual C # .NET

и ...

Кэширование с помощью ASP.NET . Не пропускайте часть 2, «Кэширование данных»

5
ответ дан 30 November 2019 в 08:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: