Dunque... quando ho iniziato ad occuparmi di asp anch'io ho avuto lo stesso tipo di problema e non mi vergogno a dirlo...
Alla fine sono giunto alla "conclusione" di non utilizzare il file global.asa ed ho cambiato "metodo e procedura" per evitare che gli utenti rimanessero appesi.
Alla fine ho optato per un sistema di gestione dei nick mediante tabelle da DB, query di lettura, inserimento, aggiornamento e cancellazione e devo dire che non mi rallenta affatto il sistema.
codice:
<%
'Funzione per la trasformazione della data a seconda dell'LCID
'1 parametro la data formato testo o formato data,
'2 nNamedFormat sono i formati data accettati dalla funzione nel motore vbscript FormatDateTime
'3 LCID (i + usati sono 1033 per le date in inglese e 1040 per la data in italiano
Function FormatDateTimeLCID (str, nNamedFormat, nLCID)
dim strRet, nOldLCID
strRet = str
If (nLCID > -1) Then nOldLCID = Session.LCID
On Error Resume Next
If (nLCID > -1) Then Session.LCID = nLCID
If ((nLCID < 0) Or (Session.LCID = nLCID)) Then strRet = FormatDateTime(str, nNamedFormat)
If (nLCID > -1) Then Session.LCID = nOldLCID
FormatDateTimeLCID = strRet
End Function
Set objConn=Server.CreateObject("ADODB.Connection")
strConn="driver={Microsoft Access Driver (*.mdb)}; "
strConn=strConn & " DBQ=" & Server.MapPath("mdb-database/users.mdb")
strConn=strConn & ";pwd=" & strCodedb
objConn.Open (strConn)
sqlx= "Select * from utenti_connessi where valido = true"
'response.write sqlx &"
"
Set rec = Server.CreateObject("ADODB.Recordset")
rec.Open sqlx, objConn
if rec.eof then
response.write ("<font color=red size=1 font face=verdana>Nessun utente attivo in questo momento.</font>") & "
"
else
While Not REC.EOF
var = var & rec("utente_connesso") & ", "
rec.MoveNext
wend
var = Left(var,Len(var)-2)
response.write ("<font color=blue size=1 font face=verdana>Utenti attivi: </font><font color=red size=1 font face=verdana>"& var &"</font>")
end if
'cancello l'utente dalla tabella degli utenti connessi (impostando data e ora nel formato corretto)
differenza = dateadd("n", -15, now())
'response.write differenza &"
"
dataInvertitaInglese = FormatDateTimeLCID(differenza,2,1033)
soloOrario = FormatDateTimeLCiD(differenza,3,1040)
strSQL = "DELETE * FROM Utenti_connessi WHERE Data_connessione < #" & dataInvertitaInglese & " " & soloOrario & "#"
'response.write strSQL
objConn.execute(strSQL)
rec.Close
objConn.Close
Set rec = Nothing
Set objConn = Nothing
%>
Spero di possa essere utile