ASP.NET есть ли способ сохранить состояние приложения как состояние сеанса на другом сервере?

может быть, вопрос неправильный, но вот чего я хочу достичь, может быть, есть другой способ сделать это.

У меня есть приложение ASP.NET под управлением .net 3.5, есть список клиентов и несколько других объектов на основе списка, которые являются общими для всех пользователей приложения. то есть. когда клиент вошел в свой идентификатор пользователя и несколько других свойств сохраняются в некотором списке в состоянии приложения. Проблема в том, что это приложение тяжелое, и его пул приложений необходимо перезапускать раз в день, поэтому вся информация, сохраненная в этих объектах List, теряется. При этом сохраняются личные данные клиента, которые сохраняются в режиме Out-of-Proc на внешнем сервере.

Есть ли способ обойти это? Общий сеанс? Что-то такое.

ПОЖАЛУЙСТА, НЕ РЕШЕНИЯ MSSQL ...

Ура, плюсы !!!!

5.11.2009 11:27:05
2 ОТВЕТА
РЕШЕНИЕ

Вы смотрели на кеширование списков данных?

Эта SO статья имеет несколько хороших плюсов.

1
23.05.2017 11:47:46

Вы должны использовать только Application State в качестве кэша для данных, сохраненных в другом месте. Затем вы должны использовать Application_Start или какой-нибудь класс загрузочной загрузки Lazy для извлечения таких постоянных данных в объект приложения.

Если вы храните изменчивые данные, которые не были сохранены в другом месте объекта приложения, у вас возникли проблемы. Надеюсь, вы бы абстрагировали доступ к объекту приложения за каким-то объектом-оберткой, чтобы весь ваш код обращался к обертке, а не к объекту-приложению. Теперь вам нужно убедиться, что изменения сохранены в другом месте, чтобы их можно было восстановить при перезапуске.

Честно говоря, объект состояния приложения действительно помогает в портировании сайтов ASP-Classic. Поскольку на самом деле вы просто должны рассматривать состояние приложения как кэш, функциональность между ним и объектом ASP.NET Cache частично совпадает.

1
5.11.2009 11:37:53
Итак, вы предлагаете сохранить в Cache, и что происходит, когда пул приложений перезагружается?
eugeneK 5.11.2009 12:01:40
Я не предполагаю, что использование Cache решает вашу проблему с повторными пулами, я просто указываю, что здесь есть совпадение. Вам необходимо хранить общие данные в каком-то энергонезависимом месте и загружать их в приложение или в кэш-память либо при запуске приложения, либо по запросу. Если ваш код изменяет необходимые данные, сохраняйте их обратно в энергонезависимое хранилище. Если вы когда-нибудь захотите поддерживать Web Garden или Farms, лучше использовать Cache, поскольку вы можете создавать зависимости SQL или File от кэшированных элементов.
AnthonyWJones 5.11.2009 12:38:31