当前位置:  开发笔记 > 后端 > 正文

如何确定ASP.NET站点(IIS)上的用户数?他们的信息?

如何解决《如何确定ASP.NET站点(IIS)上的用户数?他们的信息?》经验,为你挑选了2个好方法。

有没有办法确定ASP.NET应用程序中具有活动会话的用户数?我在特定应用程序中有一个管理员/工具页面,我想显示有关所有打开会话的信息,例如会话数,可能还有请求计算机的地址,或每个用户的其他凭据信息.



1> Eduardo Molt..:

在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"以使其正常工作

    
        
    

在.aspx文件中

Visitors online: <%= Application["OnlineUsers"].ToString() %>

注意:代码最初是从http://www.aspdotnetfaq.com/Faq/How-to-show-number-of-online-users-visitors-for-ASP-NET-website.aspx复制的(链接不再有效)


这一切都很好,但它不会在使用sql作为状态服务器的Web场上托管的大型站点上工作:(会话开始和结束在这种情况下不会触发.可以做些什么来解决这个问题?

2> Gulzar Nazim..:

ASP.NET状态服务器会话活动(活动用户会话数)等ASP.NET性能计数器可以帮助您.然后,您只需从管理页面中阅读并显示性能计数器即可.


目前尚不清楚你将如何做,或者只能计算当前的应用程序.你有一些代码要分享吗?
推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有