[Tips] ASP.NET 4 Comprime las variables de Session (Para WebFarm)
Una de las posibilidades que nos da ASP.NET es poder manejar las variables de Sesión en una granja de servidores de dos maneras, teniendo un Servidor IIS que maneje las sesiones (fuera de la granja que maneja las peticiones http propiamente tal) o almacenado estas sesiones en un SQL Server. En ambos casos se tiene que serializar el estado de sesión (debido a que el almacenamiento se da fuera del proceso de trabajo de la aplicación web), y es posible que los datos serializados puedan crecer bastante (ya saben , hay amiguitos que les gusta guardar dataset con cientos de datos en el la sesión)
ASP.NET 4 introduce una nueva opción de compresión para ambos escenarios, fuera de proceso de estado de sesión.
Cuando la opción de configuración compressionEnabled="true" como se muestra en el ejemplo , ASP.NET comprimirá (y descomprimirá) los datos serializados del estado de sesión utilizando la librería del Framework System.IO.Compression.GZipStream.
Con este simple cambio vamos a ver reducidos considerablemente los datos que se mueven entre los servidores de sesión y nuestra aplicación ( y vice-versa)
<sessionState
mode="SqlServer"
sqlConnectionString="data source=dbserver;Initial Catalog=aspnetstate"
allowCustomSqlDatabase="true"
compressionEnabled="true"
/>
Pd: Me recuerdo de las palabras de Eduard Tomas i Avellana,: "como es que no estaba antes?”
Saludos, y happy compression!
Gonzalo