在Global.asax里做的在线人数统计:
    void Session_Start(object sender, EventArgs e) 
    {
        Application.Lock();
        Application["online"] = (int)Application["online"] + 1;
        Application.UnLock();
    }    void Session_End(object sender, EventArgs e) 
    {
        Application.Lock();
        Application["online"] = (int)Application["online"] - 1;
        Application.UnLock();
    }
问题是同一个人再打开一个新窗口也就是新建一个会话的时候也会执行这个事件,这样人数就不准了,有什么办法能精确一点的统计办法.
两个100分的帖子帮结一下.

解决方案 »

  1.   

    http://community.csdn.net/Expert/TopicView.asp?id=4739238
    http://community.csdn.net/Expert/TopicView.asp?id=4722567
      

  2.   

    如果不需要用户登陆,那么你所要的在线用户数就没有多大的参考意义!如果需要用户登陆的话,用一个Hashtable存放在线用户ID列表,在用户登陆成功时首先查找在线用户列表中有没有当前用户,没有的话才将当前用户加入,否则不加!这样,在线用户列表和在线用户数一起就出来的!我就是这样做的,LZ可以参考一下!!!
    请参考http://blog.csdn.net/syl2000/archive/2006/06/19/813298.aspx
      

  3.   

    syl2000(yl.Su)怎么会没有意义,难道你不想知道自己网站的在线人数访问量吗?
      

  4.   

    http://topic.csdn.net/t/20041201/13/3605127.html