Jak uzyskać dokładną całkowitą liczbę odwiedzających w ASP.NET

Chcę poznać liczbę użytkowników online w mojej witrynie. Zrobiłem moje badania i znalazłem dwa rozwiązania.

Źródło: Code Project
Licznik aktywnych użytkowników online w ASP.NET

Jest łatwy w konfiguracji i obsłudze, ale zwiększa również liczbę użytkowników dla każdego żądania / odpowiedzi Ajax. Moja strona główna ma 12 żądań Ajax (8 żądań na jedną stronę i 4 żądania na inną stronę). To znacznie zwiększa liczbę użytkowników.

Źródło: Przepełnienie stosu Q / A
Policz nie odwiedzających Ten działa dokładnie tak samo jak poprzedni.

Źródło: Forum ASP.NetJak zobaczyć „kto jest online” za pomocą C #

Ten wygląda lepiej niż dwa poprzednie. Oto szczegółowy kod tego rozwiązania.

void Application_Start(object sender, EventArgs e) 
    {
        // Code that runs on application startup
        HttpContext.Current.Application["visitors_online"] = 0;
    }

void Session_Start(object sender, EventArgs e) 
    {
        Session.Timeout = 20; //'20 minute timeout
        HttpContext.Current.Application.Lock();
        Application["visitors_online"] = Convert.ToInt64(HttpContext.Current.Application["visitors_online"]) + 1;
        HttpContext.Current.Application.UnLock();
    }

void Session_End(object sender, EventArgs e) 
    {
        HttpContext.Current.Application.Lock();
        Application["visitors_online"] = Convert.ToInt64(HttpContext.Current.Application["visitors_online"]) - 1;
        HttpContext.Current.Application.UnLock();
    }

Wydaje się, że jest w stanie zignorować rosnącą liczbę dla każdej odpowiedzi Ajax, ale nadal sumuje się dla każdego odświeżenia strony lub żądania strony.

Czy jest jakieś podejście do liczenia dokładnej liczby użytkowników online w ASP.Net?

questionAnswers(6)

yourAnswerToTheQuestion