HTMLpointHTMLpoint HTMLpoint.com


 IIS: usuarios conectados al sitio



Hemos recibido numerosas peticiones de aclaración sobrela visualización del número de usuarios conectados en un determinado momento a un cierto sitio web. En otras palabras, lo que sucede en la portada de HTMLpoint.

Es conveniente precisar previamente que esta posibilidad queda reservada a las páginas albergadas en servidores web NT, con soporte de script ASP. Esto significa que si un sitio está albergado por una comunidad gratuita, es necesario que el servidor utilizado sea NT (para más referencias, preguntad a los administradores del sistema), y que esté activada la posibilidad de usar script ASP.

La explicación que figura a continuación se dirige a los webmáster que son también administradores de su sistema. Si no se tiene esta posibilidad, es necesario dirigirse al administrador.

La suma de los usuarios conectados contemporáneamente se puede efectuar explotando el archivo Global.asa. Este archivo tiene como función controlar los parámetros relativos a toda la aplicación gestionando su control.
Para que un sitio se convierta en "Aplicación", se tiene que hacer ejecutable el directorio virtual que alberga los file ASP que componen el sitio. Esto lo puede realizar la Microsoft Management Console de IIS, en las propiedades del sitio bajo la voz Home directory, donde en application setting se debe habilitar Execute.
Una vez hecho esto, nuestro sitio se ha convertido en una aplicación y como tal podrá ser gestionada por el file Global.asa.
Con este file instalado en la raíz principal del sitio, se podrá por ejemplo establecer un timeout que cierra la conexión a falta de actividad por parte del usuario.Session. (Timeout = 10) Por defecto el valor es 20 min.

El script que sigue (Global.asa) permite la suma de los usuarios conectados contemporáneamente.
Tras haber fijado de nuevo el número de usuarios activos (Application("ActiveUsers") = 0)
fija el timeout para la desconexión en 10 min. (Session.Timeout = 10)
Ahora cada nuevo usuario que accede a la aplicación se agregará a la suma

(Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") + 1
Application.UnLock)


Algo similar sucede cuando el usuario se desconecta

(Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") - 1
Application.UnLock)


La visualización de todo lo anterior se podrá efectuar en cualquier página ASP de la aplicación insertando el código:

<%= Application("ActiveUsers") %>

File GLOBAL.ASA

<%SCRIPT LANGUAGE="VBScript" RUNAT="Server">

Sub Application_OnStart

Application("ActiveUsers") = 0
End Sub

Sub Session_OnStart
' fija el timeout por defecto 20
Session.Timeout = 10

Session("Start") = Now

Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") + 1
Application.UnLock
End Sub

Sub Session_OnEnd
' cuando el visitante sale (-1)
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") - 1
Application.UnLock
End Sub

<%/SCRIPT>


y en la página basta este script:

<%= Application("ActiveUsers") %>


  Vuelve a principio de página