Jag skulle gissa på att sessionerna i sig har tappat sina värden iom onend, och det enda du har tillgång till är Session.SessionID.
Mvh,
7 svar · 283 visningar · startad av Jacob
Sub Session_OnEnd()
'del 1
Application.Lock
Application("NumSession") = Application("NumSession") - 1
Application.Unlock
'del2
If Len(Trim(Session("userid") & "")) <> 0 Then
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "temp"
Set datum = conn.execute("SELECT dag FROM score WHERE (userid = "&session("userid")&") AND (dag = CONVERT(char,getdate(),112))")
If datum.eof Then
conn.execute("INSERT INTO score (userid, dag) VALUES("&session("userid")&",CONVERT(char,getdate(),112))")
End If
datum.close
Set datum = Nothing
conn.execute("UPDATE score SET tid=tid+"&round(DateDiff("s", cDate(session("kom")), now)/60)&" WHERE userid="&session("userid")&" AND dag=CONVERT(char,getdate(),112)")
conn.close
Set conn = Nothing
End If
End Sub
Den första delen om applications körs men inte den andra, varför? Koden fungerar utanför global.asa.
Jag skulle gissa på att sessionerna i sig har tappat sina värden iom onend, och det enda du har tillgång till är Session.SessionID.
Mvh,
Ok, hur gör man för att lösa det här da. Det jag vill är att användarens onlinetid ska sparas i databasen.
Du får väl spara ner sessionsid till databasen också och använda det som nyckel i session_onend.
Mvh,
Alla SessionVariabler skall finnas kvar i Session_OnEnd
Hmm...
Hur har du dina rättigheter uppsatta för IIS ?
Med vissa inställningar på din IIS kan just Session_OnEnd köras med från ett annat UserID än dina "vanliga" sidor...
Vilket kan ge problem att komma åt t.ex. databaskoppel
Kolla http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q243828
eller sök på t.ex. google efter "Session_OnEnd bug"
Oj då, fel knapp, redigerar bort... :)