2013-02-10 3 views
2

В соответствии с MSDN: «Один экземпляр этого класса создается для каждого домена приложения и остается действительным до тех пор, пока домен приложения остается активным. Информация об экземпляре этого класса доступна через свойство Cache объект HttpContext или объект Cache объекта Page. "Использование кэширования данных

По моим сведениям, HttpContext и Page Срок действия объекта действителен для одного запроса HTTP. Итак, каково использование свойства Cache (кэширование данных), когда я не могу использовать его для другого запроса?

ответ

4

MSDN верен: HttpContext.Cache живет на весь жизненный цикл приложения, а не только по запросу.

Вы правы, что HttpContext живет за запрос, но объект Cache живет на протяжении всего срока службы. Структура обязательно назначит правильный экземпляр Cache при создании HttpContext для вас.

+0

Я отметил это как ответ. Благодарю. У вас есть еще одно сомнение: что вы подразумеваете под «жизненным циклом приложения». Должен ли я воспринимать это как создание объекта HttpApplication для уничтожения. Или жизненный цикл будет продолжаться, когда один и тот же объект HttpApplication будет повторно использован для другого запроса страницы из того же приложения? –

+0

Жизненный цикл приложения - это весь жизненный цикл вашего приложения, он начинается с Application_Start и заканчивается, когда пул приложений закрыт или переработан. Даже если в игре задействованы несколько объектов HttpApplication, будет только одно событие Application_Start. – driis

+0

Итак, вы имеете в виду, что до тех пор, пока пул приложений не будет закрыт или не будет переработан, я могу использовать свои кешированные объекты в разных запросах правильно? –

1

HttpContext и Page могут быть действительны только по требованию. Однако кеш находится на уровне приложения. Просто потому, что вы можете получить доступ к объекту Cache, используя HttpContext и Page, не означает, что они имеют одинаковую продолжительность жизни.

Смежные вопросы