一、用户显示页面的使用
 首先,我们来看看怎样现实当前网站的访问用户数量,程序代码如下:
<%@ Page Language="c#" debug="true" %>
<html>
<head>
<SCRIPT LANGUAGE="c#" RUNAT="server">
private void Page_Load(object sender, System.EventArgs e)
{   
Visitors.Text = "本站当前有:  <b>" + Application["user_sessions"].ToString() + "" + "</b>  位访问者 !";
}
<title>在线用户</title>
</head>
<body>
<asp:label id="visitors" runat="server" /><br>
</body>
</html>
 可以看出,以上的程序特别简单,就是调用Application。当然,我们不必要专门设计一个页面来显示在线用户数量,在网站的任何页面,我们都可以直接调用Application("user_sessions").ToString()来显示当前用户数量。
二、global.asax文件实现
global.asax文件的作用我们自不必说,现在,我们直接来看统计当前在线用户数量如何实现:
<script language="c#" runat="Server">
protected void Application_Start(Object sender, EventArgs e)
{
 Application["user_sessions"] = 0;
}
protected void Session_Start(Object sender, EventArgs e)
{
 Application.Lock();
 Application["user_sessions"] = (int)Application["user_sessions"] + 1;
 Application.Unlock();
}
protected void Session_End(Object sender, EventArgs e)
{
 Application.Lock();
 Application["user_sessions"] = (int)Application["user_sessions"] - 1;
 Application.Unlock();
}
</script>

解决方案 »

  1.   

    关闭浏览器时,就是在ONUNLOAD时,运行一段JAVASCRIPT, 用XMLHTTP提交到一个ASP页里注销当前用户.还有个更简单的方法是在ONUNLOAD时打开一个很小的ASP文件窗口,在这个ASP文件里注销SESSION,把Xml文件中的name删掉.然后再关闭这个小窗口.
      

  2.   

    关闭浏览器时,就是在ONUNLOAD时,运行一段JAVASCRIPT, 用XMLHTTP提交到一个ASP页里注销当前用户.还有个更简单的方法是在ONUNLOAD时打开一个很小的ASP文件窗口,在这个ASP文件里注销SESSION,把Xml文件中的name删掉.然后再关闭这个小窗口.能给出例子吗 谢谢
      

  3.   

    littleqiang520(小强) 说的不好用。只能增加。不能减
      

  4.   

    就按 littleqiang520(小强) 的说法做吧
      

  5.   

    关闭浏览器时,就是在ONUNLOAD时,运行一段JAVASCRIPT, 用XMLHTTP提交到一个ASP页里注销当前用户.还有个更简单的方法是在ONUNLOAD时打开一个很小的ASP文件窗口,在这个ASP文件里注销SESSION,把Xml文件中的name删掉.然后再关闭这个小窗口.
    能说的详细些吗?最好给出例子 谢谢
      

  6.   

    原因找到了。session关闭的时间是20分。如果不正常rebadon就20分之后减哈哈
      

  7.   

    global.asax文件的作用我们自不必说,现在,我们直接来看统计当前在线用户数量如何实现:
    <script language="c#" runat="Server">
    protected void Application_Start(Object sender, EventArgs e)
    {
     Application["user_sessions"] = 0;
    }
    protected void Session_Start(Object sender, EventArgs e)
    {
     Application.Lock();
     Application["user_sessions"] = (int)Application["user_sessions"] + 1;
     Application.Unlock();
    }
    protected void Session_End(Object sender, EventArgs e)
    {
     Application.Lock();
     Application["user_sessions"] = (int)Application["user_sessions"] - 1;
     Application.Unlock();
    }
      

  8.   

    不光记录人数  还得记录人员列表,修改Xml文件里的人员呀
      

  9.   

    谁能解释
    Application_Start
    Session_Start
    Session_End
    Application_End
    都什么时候发生、什么时候结束