zoukankan      html  css  js  c++  java
  • Asp.Net实现在线人数统计 (转)

    原文件:http://blog.csdn.net/wxd_860825/article/details/4589292

    利用Application对象和Session对象可以统计当前在线用户数量.

    注意:

    (1)在会话开始和结束时,一定要进行加锁和解锁操作。由于多个用户可以共享Application对象,因此加锁是必要的,这样可以保证在同一时刻只有一个客户可以修改和存取Application对象的属性。如果加锁后,迟迟不给开锁,会导致用户无法访问Application对象。我们可以使用对象的Unlock方法来解除锁定。

    (2)我们是根据用户建立和退出会话来实现在线人数的增加、减少的,如果用户没有关闭浏览器,而直接进入其他URL,则这个会话在一定时间内是不会结束的,所以对在线用户的统计存在一定的偏差。当然我们可以在Web.config文件中对会话Session的失效时间Timeout来设置,默认值为20分钟,最小值为1分钟。

    (3)只有在Web.config文件中的sessionstate模式设置为InProc时,才会引发Session_End事件。如果会话模式为StateServer或SQLServer,则不会引发该事件。

    实现代码:

    我们在网站中添加一个Global.asax全局应用程序文件.

    Global.asax

    <%@ Application Language="C#" %>

    <script runat="server">

    void Application_Start(object sender, EventArgs e)
    {
    //应用程序启动时运行的代码
    Application["count"] = 0;
    }

    void Application_End(object sender, EventArgs e)
    {
    // 在应用程序关闭时运行的代码
    }

    void Application_Error(object sender, EventArgs e)
    {
    // 在出现未处理的错误时运行的代码
    }

    void Session_Start(object sender, EventArgs e)
    {
    //对Appliaction加锁以防止并行性
    Application.Lock();

    //增加一个在线人数
    Application["count"] = (int)Application["count"] + 1;

    //解锁
    Application.UnLock();

    }

    void Session_End(object sender, EventArgs e)
    {
    Application.Lock();

    //减少一个在线人数
    Application["count"] = (int)Application["count"] - 1;

    Application.UnLock();
    }

    </script>

    default.aspx

    <%@ Page Language="C#" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>无标题页</title>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <%Response.Write(Application["count"]); %>
    </div>
    </form>
    </body>
    </html>

  • 相关阅读:
    移动Web应用开发入门指南——视觉篇
    Dapper的完整扩展(转)
    Dapper.net 在Parameterized时对于String的扩展(转)
    Entity Framework 5.0
    用事实说话,成熟的ORM性能不是瓶颈,灵活性不是问题:EF5.0、PDF.NET5.0、Dapper原理分析与测试手记(转)
    雅虎团队:网站性能优化的35条黄金守则(转)
    在window server 2008 64位系统上 发布网站的过程中遇到的问题(转)
    sqlserver能否调用webservice发送短信呢?
    数据库优化方案(转)
    SQL点滴之编辑数据(转)
  • 原文地址:https://www.cnblogs.com/yjg8116/p/4364453.html
Copyright © 2011-2022 走看看