У приложения есть события запуска и завершения работы.
Общие данные можно загружать при запуске приложения (
Application_Start) или подгружать в статические классы в процессе работы приложения. Либо использовать
HttpApplication, хотя смысла в этом особого нет.
Важную информацию можно сохранить при завершении работы приложения (
Application_End) в любое удобное хранилище (базы данных, файлы). Если данные очень важны, то лучше их периодически сохранять в процессе работы приложения (сделать таймер при инициализации приложения), т.к. рабочий процесс может быть завершен некорректно и событие
Application_End может не возникнуть. Также следует учитывать вероятность неожиданного завершения работы приложения в момент сохранения важных данных (например, если рабочий процесс будет убит).
Временные данные можно хранить в кэше.
Небольшие объемы данных можно хранить в переменных, но лучше постараться держать такие данные в одном месте и не размазывать по всему приложению. Например, использование для этих целей классов контроллеров - не лучшая идея.