Como obter o total preciso de visitantes no ASP.NET

Eu quero saber o número de visitantes on-line no meu site. Eu fiz minha pesquisa e encontrei duas soluções.

Fonte: Code Project
Contador de usuários ativos on-line no ASP.NET

É fácil de configurar e fácil de usar, mas aumenta a contagem de usuários para cada solicitação / resposta Ajax também. Minha página inicial tem 12 solicitações Ajax (8 solicitações para uma página e 4 solicitações para outra página). Isso aumenta drasticamente a contagem de usuários.

Fonte: estouro de pilha Q / A
Conte o não de visitantes Este funciona exatamente da mesma maneira que o anterior.

Fonte: Fórum ASP.NetComo ver "quem está online" usando c #

Este parece melhor que os dois anteriores. Aqui está o código de detalhe desta solução.

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();
    }

Parece ser capaz de ignorar o aumento da contagem para cada resposta do Ajax, mas ela ainda é adicionada para cada atualização de página ou solicitação de página.

Existe alguma abordagem para contar o número exato de visitantes on-line no asp.net?

questionAnswers(6)

yourAnswerToTheQuestion