Переменные в памяти на сервере после истечения времени сеанса - PullRequest
0 голосов
/ 26 сентября 2011

Я создал веб-сайт, который в основном используется для составления отчетов по нескольким местоположениям, а также для отчетов по электронной почте и тому подобного.Так как он имеет дело с большим количеством информации, я настроил его так, чтобы он собирал кучу информации за один раз, затем я просматриваю ее с помощью linq и фильтрую ее так, как мне нужно.Когда кто-то действительно нажимает кнопку выхода, переменные освобождаются и очищаются.

Мой вопрос: что произойдет с этими переменными, если пользователь на самом деле никогда не щелкает по выходу из системы и либо пропускает тайм-аут сеанса, либо х выходит из используемого веб-браузера?

Если переменные не освобождены, как люди обычно справляются с этим?

Спасибо, Майк

Ответы [ 2 ]

1 голос
/ 26 сентября 2011

То, как вы это описали, звучит так, что лучшим решением является сохранение данных в кеше, чтобы вы могли ссылаться на них в любое время.

Вот простой пример того, каккешировать объект DataSet:

DataSet ds = RetrieveLotsOfData();
Cache["MyDataSet"] = ds;

После того, как данные сохранены в кеше, вы можете ссылаться на них где угодно, например:

DataSet ds = (DataSet)Cache["MyDataSet"];

В этой статье представлен обзор управления кешем в ASP.NET:

http://www.codeproject.com/KB/web-cache/cachemanagementinaspnet.aspx

1 голос
/ 26 сентября 2011

Если время вашей сессии истекло (в конечном итоге), тогда ваш сервер выпустит ссылку на объект Session, который содержит ссылку на объект, который вы храните в SessionState.Если для объекта не осталось ссылки, он автоматически собирается после запуска сборщика мусора.Кстати, если ваш пользователь нажимает logout, это не означает, что объекты очищаются немедленно, а просто означает, что эти объекты становятся доступными для сборки мусора.Таким образом, вы не совсем уверены, когда они будут собраны, но это позволяет процессу сбора мусора запускаться только при необходимости и выполнять дополнительную очистку, когда ваше приложение не находится под большой нагрузкой.

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