Ragazzi sto impazzendo con un problema da diversi giorni.
Cerco di spiegarvi il problema meglio che posso.

Il programma riguarda una sistema di messaggeria.
Dunque un utente fa il login:
se è riconosciuto avviene questo:

codice:
	session("utente") = rsME("ID_utenti")
	session.timeout = 20

if InStr(1, Application("Users"), Session("utente") & "|" ) = 0 then  
'se l'utente non è già presente   
Application.Lock  
'viene aggiunto l'utente appena loggato alla stringa che contiene  
' l'elenco degli utenti  
Application("Users") = Application("Users") & Session("utente") & "|"  
Application.UnLock 
end if
nel global.asa il codice è il seguente:

codice:
<SCRIPT language="VBScript" Runat="Server">  
Sub Application_OnStart  
Application("Users") = "" 
End Sub 


Sub Session_OnEnd 

Application.Lock   
Application("Users") = Replace( Application("Users") , Session("utente") & "|" ,"")   
'quando scade una sessione viene eliminato il nome dell'utente dalla variabile di  
'applicazione che contiene l'elenco degli utenti attivi   
Application.UnLock 

End Sub
</SCRIPT>
Quindi questo è il discorso relativo al riconoscimento degli utenti sul sito.
Adesso c'è una pagina che si chiama messaggeria.asp che richiama con un iframe al suo interno la pagina inc_messaggeria.asp

Questa pagina determina gli utenti che sono connessi

codice:
 arrUtenti = Split(Application("Users"),"|") 
 for i = 0 to UBound(arrUtenti)  
  all_id = all_id & arrUtenti(i) & "," 
  next
  lunghezza = len(all_id)
  all_id = mid(all_id, 1, lunghezza-2)
e dopo fa la query per visualizzare tutte le informazioni di cui ho bisogno:

codice:
strSQL = "SELECT tab_utenti.user_utente, tab_utenti.nome_utente, tab_utenti.ID_utenti, tab_utenti.sesso_utente, tab_utenti.foto_utente, tab_utenti.data_utente, tab_utenti.admin_utente, tab_utenti.online_utente, SUM(tab_messaggeria.id_mittente) AS somma_messaggi " &_
			"FROM tab_utenti LEFT OUTER JOIN " &_
			"tab_messaggeria ON tab_messaggeria.id_mittente = tab_utenti.ID_utenti " &_
			"WHERE tab_utenti.ID_utenti IN ( " & All_ID & " ) AND tab_utenti.online_utente = 1 " &_
			"GROUP BY tab_utenti.user_utente, tab_utenti.nome_utente, tab_utenti.ID_utenti, tab_utenti.sesso_utente, tab_utenti.foto_utente, tab_utenti.data_utente, tab_utenti.admin_utente, tab_utenti.online_utente"
Questa pagina si refresha, attraverso un meta ogni 40 secondi.
Se la session è scaduta c'è un controllo sopra alla pagina:

codice:
<%
if session("utente") = "" then

session("pagina") = "../messaggeria.asp"
%>
<script language="javascript">
parent.location.href='/nologin.asp';
</script>
<%
end if
%>
Purtroppo accade che dopo circa una decina di minuti, anche se non è scaduta la session, non mi mostra piu nessun utente nella pagina dove devo mostrare gli utenti connessi, e non mi fa neanche il login, semplicemente non mi mostra niente, come se la query non restituisse nessun valore valido.

Lo so è un pò complesso, ma vi prego sto impazzendo e non capisco il perchè!!!
Riuscite a darmi una mano?

Grazie a tutti