61 messaggi dal 02 luglio 2007
Ciao... sto lavorando su una web app e volevo far apparire sulle pagine del sito il numero di utenti connessi... ho scritto il seguente codice nel file global.asax

public class Global : System.Web.HttpApplication
    {
        protected void Application_Start(object sender, EventArgs e)
        {
            Application["NumeroSessioni"]=0;
        }

        protected void Application_End(object sender, EventArgs e)
        {
            Application["NumeroSessioni"]=0;
        }

        protected void Session_Start(object sender, EventArgs e)
        {
            Application.Lock();            
            Application["NumeroSessioni"]=int.Parse(Application["NumeroSessioni"].ToString())+1;
            Application.UnLock();
        }

        protected void Session_End(object sender, EventArgs e)
        {
            Application.Lock();
            Application["NumeroSessioni"]=int.Parse(Application["NumeroSessioni"].ToString())-1;
            Application.UnLock();
        }
    }


ho provato in locale aprendo più browser.... il risultato è che il numero delle sessioni aumenta correttamente ma non scende alla chiusura di un browser... ho provato con il debug ma il metodo Session_End non viene neanche chiamato.
Come risolvere ? Grazie
3.165 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

l'evento session_end non corrisponde alla chiusura del browser, bensì alla scadenza della sessione del'utente sul server. Per default questa avviene dopo 20 minuti dall'ultima operazione dell'utente. Inoltre, se la sessione non è inproc ma impostata su stateserver o sqlserver, l'evento session_end non viene nemmeno richiamato e quindi il tuo metodo sballa completamente.
HTH

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
61 messaggi dal 02 luglio 2007
1)Grazie tante.... ma quale evento viene richiamato alla chiusura del browser se ce n'è uno ?
2)In realtà avrei voluto intendere come sessione il periodo in cui un utente possiede il cookie di auth (V.formAuthentication) ma se non è possibile fa niente...
3)Cosa vuole dire poi sessione inproc... stateserver... sql server... cioè è possibile impostare diversi tipi di sessione?
Prego illuminatemi Grazie
3.165 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,
1) Prego  . Nessun evento.
2) Se usi le membership API c'è già un metodo che ti dice gli utenti online.
3) sono i 3 store della sessione: Inproc = nella macchina locale, StateServer = in un servizio NT, SqlServer = in un database sqlserver. Lo puoi configurare da web.config nel nodo sessionState.

HTH
.

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
61 messaggi dal 02 luglio 2007
Non uso le membershipAPI purtroppo... ovviamente non posso usare quel metodo senza aver implementato le membershipAPI vero ?
Se esite un altro modo per conoscere gli utenti collegati fatemi sapere grazie.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.