Cómo obtener el total de visitantes precisos en ASP.NET
Quiero saber el número de visitantes en línea en mi sitio. Hice mi investigación y encontré dos soluciones.
Fuente: Proyecto de Código
Contador de usuarios activos en línea en ASP.NET
Es fácil de configurar y usar, pero también aumenta la cantidad de usuarios para cada solicitud / respuesta Ajax. Solo mi página de inicio tiene 12 solicitudes Ajax (8 solicitudes a una página y 4 solicitudes a otra página). Esto aumenta dramáticamente el número de usuarios.
Fuente: desbordamiento de pila Q / A
Contar el no de visitantes Este funciona exactamente igual que el anterior.
Fuente: Foro ASP.NetCómo ver "quién está en línea" usando C #
Este se ve mejor que los dos anteriores. Aquí está el código de detalle de esta solución.
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 el aumento en el recuento para cada respuesta Ajax pero aún así se suma para cada actualización de página o solicitud de página.
¿Hay algún enfoque para contar el número exacto de visitantes en línea en ASP.Net?