luisvasquez, Shiryu_Libra te dío la repuesta del porque aparecen más usuario de los que lo que realmene están conectados.
La programación web es un ambiente desconectado, me refiero que el servidor no tiene como darse cuenta que el cliente está o no está conectado de forma instantania.
Cuando tu llamas a la primera página de tu sitio se inicia una sesión, por lo tanto se ejecuta el evento
Sub Session_OnStart(), pero si tu sitio web no tiene implementado una forma para que el usuario cierre sesión, en el cual reduzcas el contador, el usuario sólo cambiara de página o cerrara la venta del explorador, no tienes como saber que el usuario solió del sitio. Por eso las sesiones tienen un
timeout, cuando se cumple el
timeout se ejecuta el eveto
Sub Session_OnEnd().
Por lo general el IIS tiene configurado un
timeout de 20 minutos, por lo tanto si no tienes implementado algún método para el cierre de sesión tedrás que espera ese tiempo para que se reduzca el contador. Por tal motivo en el código que te suministró Shiryu_Libra, ponen el
timeout en 5 (me imagino que son 5 minutos). Además aún cuando tengas implementado el método de cerrar sesión el usuario podría solo cerrar la venta del navegador y siempre tendrías que esperar el
timeout de la sesión.
Saludos