Jag har sett en hel del som har haft problem med global.asa-filen i detta forum men har aldrig fått nån riktig förklaring. Nu sitter jag själv och prövar och har insett att det inte är riktigt solklart. Problemet är helt klart att Session_OnEnd aldrig körs. Jag har testat med att på första sidan skapa en session (timeout=1) vilket gör att session_OnStart körs, på en andra sida kör jag session.abandon() men aldrig att den har kommit till Session_OnEnd...puhhh
Här kommer min global.asa (jag testar därav hårdkodningen i sql'n)
[kod]
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart()
Application("NumberofVisitors") = 0
End Sub
Sub Session_OnStart()
Set con=Server.CreateObject("ADODB.Connection")
con.Open "driver=etc....
Application("NumberofVisitors") = Application("NumberofVisitors") + 1
session.timeout = 1
sql = "UPDATE user SET online=1 WHERE userId=1"
con.execute(sql)
sql2 = "UPDATE user SET online=1 WHERE userId=2"
con.execute(sql2)
End Sub
Sub Session_OnEnd()
Set con=Server.CreateObject("ADODB.Connection")
con.Open "driver=etc...
Application("NumberofVisitors") = Application("NumberofVisitors") + 5
sql3 = "UPDATE user SET online=0 WHERE userId=2"
con.execute(sql3)
End Sub
Sub Application_OnEnd()
Application("NumberofVisitors") = 0
End Sub
</SCRIPT>
[/kod]
och ja, den ligger i roten och jag har testat att vänta i 20min....
Här kommer min global.asa (jag testar därav hårdkodningen i sql'n)
[kod]
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart()
Application("NumberofVisitors") = 0
End Sub
Sub Session_OnStart()
Set con=Server.CreateObject("ADODB.Connection")
con.Open "driver=etc....
Application("NumberofVisitors") = Application("NumberofVisitors") + 1
session.timeout = 1
sql = "UPDATE user SET online=1 WHERE userId=1"
con.execute(sql)
sql2 = "UPDATE user SET online=1 WHERE userId=2"
con.execute(sql2)
End Sub
Sub Session_OnEnd()
Set con=Server.CreateObject("ADODB.Connection")
con.Open "driver=etc...
Application("NumberofVisitors") = Application("NumberofVisitors") + 5
sql3 = "UPDATE user SET online=0 WHERE userId=2"
con.execute(sql3)
End Sub
Sub Application_OnEnd()
Application("NumberofVisitors") = 0
End Sub
</SCRIPT>
[/kod]
och ja, den ligger i roten och jag har testat att vänta i 20min....
finns det nån som har nån idé om vad det kan bero på?
. Online-kolumnen är av typen J/N och är default = 0.
Comment