2009-02-04 58 views

回答

3

這裏是一個很好的文章,顯示的方式做到這一點:Active User Count Without Global.asa by Josh Painter

我想你必須改變一些細節,但是這是你能解決這個問題的方式。作者不使用global.asa。

一個更簡單的方法是,將全局.asa中的Sesssion_OnStartSession_OnEnd事件掛接,並從作爲應用程序變量實現的會話列表中添加/刪除項目。

如果你只是想在計數會議,你可以簡單地做這種方式:

Sub Session_OnStart 
    Application.Lock 
    Application("count") = Application("count") + 1 
    Application.Unlock 
End Sub 

Sub Session_OnEnd 
    Application.Lock 
    Application("count") = Application("count") - 1 
    If Application("count") < 0 then ' Could only happen if some other function interfers 
     Application("count")=0 
    End If 
    Application.Unlock 
End Sub 

在你的ASP文件

<% 
Response.Write "There are currently " & Application("count") & "active sessions>" 
%> 
+0

找不到404頁面。也許添加信息或在archive.org中找到它? – 2015-06-10 15:07:24

1

您不能從另一個訪問一個會話,所以沒有內置的方法來獲取所有活動會話的列表。但是,您可以在global.asa中使用Session_OnStartSession_OnEnd通過將相關會話信息保存到Application對象,日誌文件,數據庫等(取決於您對信息的確切操作)來跟蹤會話。

我們傾向於跟蹤Application對象中活動會話的數量,以便大致瞭解在特定時間有多少人正在使用網站(當然,請記住,人們通常會離開該網站很久之前他們的會議超時)。這不是100%準確,但足夠接近當前活動的指南。

如果您只想要會話數,您還可以使用Perfmon跟蹤Active Server Pages性能對象的Sessions Current計數器(和其他相關計數器)。顯然,這假定訪問服務器,可能不是你想要的在這種情況下。

有關某些選項的詳細信息,請嘗試以下文章:How do I count the number of current users/sessions?(存檔版本)

+0

該鏈接不起作用(轉到着陸頁)。 – 2015-06-10 15:07:47