L'uso del SessionState, che in ASP.NET è notevolmente potenziato rispetto a quanto è presente in Classic ASP, può rappresentare facilmente uno dei talloni di Achille per quanto riguarda le performance, se il carico a cui è sottoposta la nostra applicazione è particolarmente elevato.
In certi casi è sufficiente disattivare il SessionState, agendo sul web.config, ed impostando questi valori:
<configuration> <system.web> <sessionState mode="Off" /> </system.web> </configuration>
L'effetto è quello di disattivare l'uso delle variabili Session, per cui è evidente che occorre rimuovere ogni riferimento a questa classe, altrimenti si riceverà un errore.
Tra l'altro se si ha bisogno di memorizzare informazioni, si possono utilizzare mezzi differenti come i cookie o la classe Cache, che comportano un carico minore sul server.
Quello che non tutti sanno è che per il SessionState è implementato come un HttpModule, registato all'interno del machine.config.
Il web.config rispetto a quest'ultimo si trova ad un livello inferiore (eredita da questo, cioè, le impostazioni), per cui se vogliamo rimuovere completamente ogni traccia di utilizzo del SessionState, per evitare del tutto che entri in gioco, è sufficiente aggiungere queste istruzioni al file di confiruazione della nostra applicazione:
<configuration> <system.web> <httpModules> <remove name="Session"/> </httpModules> </system.web> </configuration>
Per approfondimenti sul web.config si veda
Configurare ASP.NET con il web.config
https://www.aspitalia.com/articoli/aspplus/webconfig.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Definire la durata dell'output cache in ASP.NET Core 7
Usare ASP.NET Core dev tunnels per testare le applicazioni su internet
Gestire la query string nell'output cache di ASP.NET Core
Gestire tipi complessi in query string grazie a IParsable in ASP.NET Core 7.0
Gestire dati sensibili nella configurazione in ASP.NET Core
Cache policy su route groups di Minimal API in ASP.NET Core 7
Catturare la telemetria degli eventi di output cache in ASP.NET Core
Taggare la output cache in base al routing in ASP.NET Core
Migliorare la scalabilità di ASP.NET Core 7 grazie all'output cache
Sfruttare l'output cache di ASP.NET Core 7 con i controller
Sfruttare i tag nell'output cache di ASP.NET Core 7
Migrare un progetto ASP.NET Core da .NET 6 a .NET 7