Данные состояния приложения всегда хранятся в процессе. Это означает, использовать можно любые типы данных .NET. Однако это также предполагает наличие тех же двух ограничений, что и у внутрипроцессиого состояния сеанса, а именно: состояние приложения не может совместно использоваться группой серверов, и данные состояния приложения всегда будут утрачиваться при обновлении (перезапуске) домена приложения, которое может происходить в виде одного из этапов обычного процесса обслуживания ASP.NET.
На заметку! Состояние приложения поставляется главным образом для обратной совместимости с классической версией ASP. В новых приложениях для глобальных данных лучше применять другие подходы, например использовать базу данных вместе с объектом Cache.
Глобальные переменные приложения можно хранить еще одним способом. Вы можете добавить в файл global.asax (о котором рассказывалось в главе 5) статические переменные экземпляра, после чего они будут скомпилированы в специальный класс HttpApplication для вашего Web-приложения и станут доступными для всех страниц. Например:
public static string[] fileList;
Главная деталь, которая позволяет такому подходу работать, состоит в том,
что переменная является статической. Это связано с тем, что для того, чтобы
обслуживать множество запросов, ASP.NET создает пул классов HttpApplication.
Поэтому каждый запрос может обслуживаться с помощью отдельного объекта
HttpApplication, а каждый объект HttpApplication имеет свои собственные данные экземпляра.
предыдущая следующая страница оглавление
292