Foros del Web » Programando para Internet » ASP Clásico »

global.asa

Estas en el tema de global.asa en el foro de ASP Clásico en Foros del Web. Tengo el siguiente global.asa <script Language="VBScript" RUNAT=Server> Sub Application_OnEnd() End Sub Sub Application_OnStart() Application("NumSesion") = 0 Application("NumVisitas") = 0 End Sub Sub Session_OnEnd() set conexion=Server.CreateObject("ADODB.Connection") ...
  #1 (permalink)  
Antiguo 26/01/2005, 05:52
 
Fecha de Ingreso: enero-2004
Ubicación: Granada
Mensajes: 185
Antigüedad: 20 años, 5 meses
Puntos: 0
global.asa

Tengo el siguiente global.asa

<script Language="VBScript" RUNAT=Server>
Sub Application_OnEnd()
End Sub

Sub Application_OnStart()
Application("NumSesion") = 0
Application("NumVisitas") = 0
End Sub

Sub Session_OnEnd()
set conexion=Server.CreateObject("ADODB.Connection")
conexion.Open("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("\acceso\bd\acceso.mdb"))
actualizar="update accesos set fecha_salida='" & date & "', hora_salida='" & time & "' where id_sesion='59309';"
conexion.execute(actualizar)
Application("NumSesion") = Application("NumSesion") - 1
End Sub

Sub Session_OnStart()
set conexion=Server.CreateObject("ADODB.Connection")
conexion.Open("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("\acceso\bd\acceso.mdb"))
actualizar="update accesos set fecha_salida='" & date & "', hora_salida='" & time & "' where id_sesion='59309';"
conexion.execute(actualizar)
Application("NumSesion") = Application("NumSesion") + 1
Application("NumVisitas") = Application("NumVisitas") + 1
End Sub
</script>


Resulta que en el evento "Sub Session_OnStart()" me actualiza el registro de la base de datos perfectamente pero en el evento "Sub Session_OnEnd()" no me lo hace y por tanto no decrementa la variable de aplicación.Como podeis comprobar el codigo es el mismo en ambos casos.
He probado quitando el código de la actualización de la bd y entoces si funciona bien, me decrementa la variable de aplicación, el problema creo que viene de la cadena " conexion.Open("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("\acceso\bd\acceso.mdb"))
", pero no se el motivo ya que esta misma cadena en el evento de inicio funciona correctamente.
Gracias
  #2 (permalink)  
Antiguo 26/01/2005, 06:39
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Pues yo tampoco lo entiendo, el global.asa me esta dando muchisimos dolores de cabeza.
  #3 (permalink)  
Antiguo 26/01/2005, 11:50
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
He visto que no usas Lock y unlock:
El codigo deberia ser
sub session_onStart()
application.lock
set conexion=Server.CreateObject("ADODB.Connection")
conexion.Open("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("\acceso\bd\acceso.mdb"))
actualizar="update accesos set fecha_salida='" & date & "', hora_salida='" & time & "' where id_sesion='59309';"
conexion.execute(actualizar)
Application("NumSesion") = Application("NumSesion") + 1
Application("NumVisitas") = Application("NumVisitas") + 1
application.unlock
end sub

Sub Session_OnEnd()
application.lock
set conexion=Server.CreateObject("ADODB.Connection")
conexion.Open("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("\acceso\bd\acceso.mdb"))
actualizar="update accesos set fecha_salida='" & date & "', hora_salida='" & time & "' where id_sesion='59309';"
conexion.execute(actualizar)
Application("NumSesion") = Application("NumSesion") - 1
application.unlock
end sub

Espero que esto te arregle el problema
  #4 (permalink)  
Antiguo 27/01/2005, 01:18
 
Fecha de Ingreso: enero-2004
Ubicación: Granada
Mensajes: 185
Antigüedad: 20 años, 5 meses
Puntos: 0
nada, sigue sin funcionar el jodido global.asa
  #5 (permalink)  
Antiguo 27/01/2005, 01:26
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Si quitas la conexion a la bd te toma Application("NumVisitas") el valor correcto al entar y al salir de la session???
  #6 (permalink)  
Antiguo 27/01/2005, 05:49
 
Fecha de Ingreso: diciembre-2004
Ubicación: argentina
Mensajes: 14
Antigüedad: 19 años, 5 meses
Puntos: 0
Hola , yo tambien estoy teniendo problemas con sessio_onend.Necesito que cuando termina la sesion se ejecuten acciones y probe poner en una pagina.asp session.abandon, la cual sea llamada por otra.Prueba hacer esto.

El tema es que algo de lo que se encuentra en session_onend funciona pero otras cosas no. Les paso el codigo haber si alguien me puede dar una mano:

Les explico algo mas: necesito guardar cuando termina la sesion el tiempo que duro la misma, pero el problema al llamar a guardar.asp en session_onend no funciona,Como podria hacer para llamar guardar.asp el usuario abandona la session????
aca les paso el codigo para que lo miren, desde ya muchas gracias

<script language="vbscript" runat="server">

sub Application_OnStart()
application ("conectados") = 0
end sub


sub Session_OnStart()

application.lock
application ("conectados") = application ("conectados") + 1
application.unlock

Session("hora_inicial")= Time

end sub


sub Session_OnEnd()

application.lock
application ("conectados") = application ("conectados") - 1
application.unlock

Session("hora_actual")= Time

pagina="guardar.asp" 'Esto no funciona
response.redirect pagina 'Esto no funciona



end sub

</SCRIPT>

En guardar.asp resto Session("hora_actual")= Time - Session("hora_inicial")= Time y lo almaceno en la base de datos.
  #7 (permalink)  
Antiguo 28/01/2005, 02:32
 
Fecha de Ingreso: enero-2004
Ubicación: Granada
Mensajes: 185
Antigüedad: 20 años, 5 meses
Puntos: 0
Cita:
Iniciado por sqa212
Si quitas la conexion a la bd te toma Application("NumVisitas") el valor correcto al entar y al salir de la session???
Si, ese es el caso que lo que funciona mal es la conexión, pero en el evento de inicio funciona correctamente y es la misma cadena de conexión
  #8 (permalink)  
Antiguo 28/01/2005, 05:10
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Has probado a mirar despues de 20 minutos en la base de datos por si se han insertado los registros (suponiendo que no hallas modificado el session timeout que esta por defecto)
  #9 (permalink)  
Antiguo 28/01/2005, 08:03
 
Fecha de Ingreso: enero-2004
Ubicación: Granada
Mensajes: 185
Antigüedad: 20 años, 5 meses
Puntos: 0
Lo he comprobado y nada, y como te he comentado antes la cadena de conexión y la actualización funcionan porque lo he probado, y además he colocado el código de el evento final en el evento inicio y ahí funciona perfectamente. Ya no se lo que hacer.
  #10 (permalink)  
Antiguo 03/02/2005, 05:53
 
Fecha de Ingreso: enero-2004
Ubicación: Granada
Mensajes: 185
Antigüedad: 20 años, 5 meses
Puntos: 0
¿Quién me puede echar un cable ? Estoy ya desesperado. Gracias de todos modos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:00.