Параметры рециркуляции для объекта состояния приложения ASP.Net
Какие есть варианты для повторного использования объекта состояния приложения ASP.Net? Я использую этот объект для хранения очередей соединений с базой данных для слоя доступа к данным на основе веб-сервиса. Я обеспокоен тем, что в течение дней / недель / месяцев я в конечном итоге выделю растущие суммы памяти для соединений с БД, которые больше не используются. Соединения создаются автоматически по мере необходимости, поэтому их сохранение не так уж важно.
Было бы здорово выборочно проанализировать состояние приложения и отбросить только то, что мне не нужно. Но на практике просто уронить весь объект и начать все с нуля будет так же хорошо. Однако мне нужно быть осторожным, чтобы процесс очистки не прерывал соединения, используемые в данный момент.
2 ответа
Что произошло до того, как вы начали кэшировать соединения? Вызывало ли их кэширование какое-либо ощутимое улучшение производительности или использования ресурсов? Я был бы немного удивлен, если бы это произошло, учитывая, что ADO.NET делает пул соединений для вас.
Нет вариантов утилизации для состояния приложения. Это для сервера, для домена приложения.
Для другого варианта кэширования рассмотрите использование объекта Cache. Это также для каждого приложения, но вы можете установить срок действия записей кэша через определенный промежуток времени.
Я провел некоторое тестирование, и кажется, что объект приложения находится в пуле приложений. (Переработка пула приложений очистила данные в объекте приложения.)