Liczenie użytkowników online za pomocą asp.net

Mam stworzyć stronę internetową, dla której muszę policzyć użytkowników online i cały czas pokazywać ją na stronie głównej. Nie interesuje mnie stosowanie gotowych do użycia modułów. Oto, co już zrobiłem:

Dodawanie pliku Global.asax do mojego projektu

Pisanie następującego fragmentu kodu w pliku Global.asax:

<code>void Application_Start(object sender, EventArgs e) 
{
    Application["OnlineUsers"] = 0;
}

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

void Session_End(object sender, EventArgs e) 
{
    Application.Lock();
    Application["OnlineUsers"] = (int)Application["OnlineUsers"] - 1;
    Application.UnLock();
}
</code>

Właściwie to działa dobrze, ale znalazłem następujący błąd: -> Nawet jeśli użytkownik zamknie przeglądarkę, rzeczywista liczba użytkowników online nie jest wyświetlana, ponieważ limit czasu sesji jest wciąż żywy!

Czy jest jakieś rozwiązanie, ale zmiana limitu czasu sesji?

questionAnswers(4)

yourAnswerToTheQuestion