2011-11-22 17 views
7

So che questa è probabilmente una domanda facile per la maggior parte di voi ragazzi. Ma il mio problema è che il mio server host svuota i loro pool di sessioni ogni minuto. Quindi, come faccio a far rimanere i miei utenti registrati per più di un minuto?Come prevenire il timeout della sessione

Ho sentito che potrei usare SessionStates, ma non ho trovato alcuna guida sulla rete che sia facile da usare per un principiante come me.

Inoltre, ho sentito di farlo con i cookie. Come?

Sto lavorando con C# e .Net

risposta

12

Ecco un modo:

http://weblogs.asp.net/stevewellens/archive/2009/06/09/ah-ah-ah-ah-staying-alive-staying-alive.aspx

A volte vuoi che la tua pagina web rimanga "viva". Cioè, se un utente sta compilando un modulo complicato, non vuoi che la sessione scada prima che siano finite. L'utente potrebbe arrabbiarsi molto e giustamente: potresti persino essere sgridato!

Non si tratta semplicemente di aumentare il timeout della sessione a un valore molto elevato. Se lo fai, le sessioni resteranno attive nella memoria del server per ore, dopo che i visitatori avranno lasciato il sito. Aumentare il timeout della sessione È una soluzione ... ma non necessariamente una buona soluzione.

L'obiettivo è che la sessione rimanga attiva fino a quando la pagina Web è aperta sul computer client ... anche se non ci sono post back per reimpostare il timer di sessione. Quando la pagina web è chiusa, la sessione dovrebbe scadere normalmente.

Ho implementato una soluzione per questo: il client "ping" il server a intervalli inferiori al timeout della sessione che reimposterà il timer di sessione. Questo è noto come il modello di disegno Heartbeat (non riuscivo a trovare un sito/pagina decente da collegare) ...

+9

+1 non solo perché è una buona soluzione, ma anche per il titolo groovy. – David

Problemi correlati