2011-03-12 44 views
2

我的環境是ASP.Net + IIS 7.0 + Windows Server 2008 + .Net 3.5。我想知道在線用戶數量和活動會話數量是否相同?另一個問題是,無論它們是否相同,如何計算它們(即給定時間,在線用戶數量以及相關活動會話數量)?在線用戶數和活動會話數

由於事先 喬治

回答

4

爲了你的第一個問題,會話和用戶是不一樣的。每個用戶都有一個會話,但有些會話不是活動的,並且沒有用戶。這些會話在超時時間後由asp.net引擎自動結束。即由於http是斷開的協議,網絡服務器無法知道用戶是在請求之間還是剛剛放棄會話。

如果要跟蹤活動會話的數量,可以使用globals.asax文件的session_start和session_end方法。 你可以有一個簡單的計數器,在開始時遞增,在結束時遞減。

+0

謝謝Elad!你的意思是會話只在超時時才變得不活躍? (即在超時之前,會話被視爲活動)?如果超時不是唯一會導致會話不活動的情況,還有其他情況嗎? – George2 2011-03-12 10:44:02

+3

注意,只有在內存會話狀態下使用session_end纔會被調用。使用超出進程狀態(狀態服務)或數據庫,它不會被調用。 – Richard 2011-03-12 11:40:47

+0

如果我使用基於內存的會話狀態,我想知道會話是否只在超時時變得不活躍? (即在超時之前,會話被視爲活動)?如果超時不是唯一會導致會話不活動的情況,還有其他情況嗎? – George2 2011-03-12 14:42:15