Максимальный размер элемента совместного кэша Azure для состояния сеанса

Я не понял, что максимальный сериализованный размер элемента в совместно расположенном общем кэше Azure (предварительная версия) составляет 8 МБ. В настоящее время я использую Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider для хранения состояния сеанса в кеше.

Мой вопрос заключается в том, сериализуется ли сеанс (все ключи/значения сеанса) как один элемент или каждый ключ сам по себе не может превышать 8 МБ?

Итак, если у меня есть 10 ключей с 1 МБ данных каждый, превышает ли это ограничение в 8 МБ?

Я знаю, что вы не предполагаете хранить эти большие объекты в сеансе (и я не делаю этого в 99% случаев), просто чтобы знать, как некоторые пограничные случаи будут вести себя в моем приложении.


person jmw    schedule 14.03.2013    source источник


Ответы (1)


По моему опыту, то, что вы говорите, верно. Я использовал средство просмотра отчетов Microsoft, которое помещает большой объем данных в сеанс с ключом guid каждый раз, когда вы запускаете новый отчет, и если я не очищаю эти ключи сеанса, я вижу эту ошибку.

person knightpfhor    schedule 14.03.2013
comment
Я также попробовал это и получил ошибку, хотя каждый элемент сеанса мал. Сообщение об ошибке: размер отправляемого сообщения составляет 12026791 байт, что больше максимального размера сообщения 8388608, указанного в конфигурации. Трассировка стека: в Microsoft.ApplicationServer.Caching.VelocityWireProtocol.GetWritePacketBuffer (пакет VelocityPacket, IBufferManager bufferManager, Boolean ignoreSizeLimit, IList`1&locationType) в Microsoft.ApplicationServer.Caching.SocketClientChannel.Send (конечная точка EndpointID, пакет IVelocityRequestPacket) - person jmw; 15.03.2013