#c_sharp #net #aspnet #сессия
У меня есть сайт на asp.net и мне нужно хранить достаточно большие файлы, 2-4 файла каждый до 10 мб между postback'ами. Сейчас я их храню в сесиях, но админ попросил поискать решение менее требовальное к количеству оперативки на сервере. Какие есть минусы хранения 40 мб файлов в Viewstate ? Отправляется ли viewstate в запросе с каждым постбеком, даже если она там не используется?
Ответы
Ответ 1
Viewstate отправляется при каждом запросе и еще шифруется. Хранить в нем такие большие файлы нельзя. Для ускорения работы сайтов есть практика отключения Viewstate совсем. Если ваши файлы разделяются между всеми пользователями, то замените хранение в сессии на хранение в Cache. Так же можно воспользоваться сторонним кеш-сервисом (memcached, redis и тд). Для экономии оперативной памяти вы можете хранить ваши временные файлы на диске между запросами. При небольшом объеме оперативки вам придется сделать выбор между производительностью (хранение в памяти любого кеш-сервиса) и загрузкой памяти (хранить на диске). Если задача это позволяет, то можно попытаться переделать последовательность работы с файлами исключающую потребность в их хранении между запросами. Например, вначеле мы собираем информацию об обработке файлов от пользователя и только в конце применяем все алгоритмы к данным из файлов.
Комментариев нет:
Отправить комментарий