Online-Benutzer mit asp.net zählen

Ich soll eine Website erstellen, für die ich die Online-Benutzer zählen und sie die ganze Zeit auf der Homepage anzeigen muss. Ich bin nicht daran interessiert, einsatzbereite Module dafür einzusetzen. Folgendes habe ich bereits getan:

Hinzufügen einer Global.asax-Datei zu meinem Projekt

Schreiben Sie den folgenden Codeausschnitt in die Datei 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>

Eigentlich funktioniert es einwandfrei, aber ich habe folgenden Fehler gefunden: -> Auch wenn der Benutzer den Browser schließt, wird die tatsächliche Anzahl der Online-Benutzer nicht angezeigt, da das Sitzungs-Timeout noch aktiv ist!

Gibt es eine andere Lösung, als das Sitzungs-Timeout-Intervall zu ändern?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage