Страницы

Поиск по вопросам

суббота, 11 апреля 2020 г.

Хранение объемных данных в viewstate asp.net

#c_sharp #net #aspnet #сессия

                    
У меня есть сайт на asp.net и мне нужно хранить достаточно большие файлы, 2-4 файла
каждый до 10 мб между postback'ами. 
Сейчас я их храню в сесиях, но админ попросил поискать решение менее требовальное
к количеству оперативки на сервере. 


Какие есть минусы хранения 40 мб файлов в Viewstate ? 
Отправляется ли viewstate в запросе с каждым постбеком, даже если она
там не используется?

    


Ответы

Ответ 1



Viewstate отправляется при каждом запросе и еще шифруется. Хранить в нем такие большие файлы нельзя. Для ускорения работы сайтов есть практика отключения Viewstate совсем. Если ваши файлы разделяются между всеми пользователями, то замените хранение в сессии на хранение в Cache. Так же можно воспользоваться сторонним кеш-сервисом (memcached, redis и тд). Для экономии оперативной памяти вы можете хранить ваши временные файлы на диске между запросами. При небольшом объеме оперативки вам придется сделать выбор между производительностью (хранение в памяти любого кеш-сервиса) и загрузкой памяти (хранить на диске). Если задача это позволяет, то можно попытаться переделать последовательность работы с файлами исключающую потребность в их хранении между запросами. Например, вначеле мы собираем информацию об обработке файлов от пользователя и только в конце применяем все алгоритмы к данным из файлов.

Комментариев нет:

Отправить комментарий