Asp.net
如何確定 ASP.NET 站點 (IIS) 上的使用者數?他們的資訊呢?
有沒有辦法確定在 ASP.NET 應用程序中具有活動會話的使用者數?我在特定應用程序中有一個管理/工具頁面,我想顯示有關所有打開會話的資訊,例如會話數,也許還有請求機器的地址,或每個使用者的其他憑據資訊。
ASP.NET 性能計數器,如 State Server Sessions Active(活動使用者會話的數量)應該可以幫助您。然後你可以從你的管理頁面讀取並顯示性能計數器..
在 global.aspx 中
void Application_Start(object sender, EventArgs e) { // Code that runs on application startup Application["OnlineUsers"] = 0; } void Session_Start(object sender, EventArgs e) { // Code that runs when a new session is started Application.Lock(); Application["OnlineUsers"] = (int)Application["OnlineUsers"] + 1; Application.UnLock(); } void Session_End(object sender, EventArgs e) { // Code that runs when a session ends. // Note: The Session_End event is raised only when the sessionstate // mode is set to InProc in the Web.config file. // If session mode is set to StateServer or SQLServer, // the event is not raised. Application.Lock(); Application["OnlineUsers"] = (int)Application["OnlineUsers"] - 1; Application.UnLock(); }注意: Application.Lock 和 Application.Unlock 方法用於防止多個執行緒同時更改此變數。
在 Web.config 中
驗證 SessionState 是否為“InProc”以使其正常工作
<system.web> <sessionState mode="InProc" cookieless="false" timeout="20" /> </system.web>在您的 .aspx 文件中
Visitors online: <%= Application["OnlineUsers"].ToString() %>**注意:**程式碼最初複製自<http://www.aspdotnetfaq.com/Faq/How-to-show-number-of-online-users-visitors-for-ASP-NET-website.aspx>(連結不再有效)