asp.net网站访问量和同时访问人数统计

新建个Global.asax(全局应用程序类)

C# code
<script runat="server">

    void Application_Start(object sender, EventArgs e)
    {
        // 在应用程序启动时运行的
        System.Data.SqlClient.SqlConnection con = DBConnect.createConnection();
        con.Open();
        System.Data.SqlClient.SqlCommand com = new System.Data.SqlClient.SqlCommand(
            "select * from total", con);
        int count =System.Convert.ToInt32(com.ExecuteScalar());
        con.Close();
       
        Application["total"] = count;
        Application["online"] = 0;

    }
   
    void Application_End(object sender, EventArgs e)
    {
        //  在应用程序关闭时运行的代码
        System.Data.SqlClient.SqlConnection con = DBConnect.createConnection();
        con.Open();
        System.Data.SqlClient.SqlCommand com = new System.Data.SqlClient.SqlCommand(
            "update total set num="+Application["total"].ToString(), con);
        com.ExecuteNonQuery();
        con.Close();

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

    }

    void Session_Start(object sender, EventArgs e)
    {
        // 在新会话启动时运行的代码
        Session.Timeout = 1;
        Application.Lock();
        Application["total"] = System.Convert.ToInt32(Application["total"]) + 1;
        Application["online"] = System.Convert.ToInt32(Application["online"]) + 1;
        Application.UnLock();
    }

    void Session_End(object sender, EventArgs e)
    {
        // 在会话结束时运行的代码。
        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
        // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
        // 或 SQLServer,则不会引发该事件。
        Application.Lock();
        Application["online"] = System.Convert.ToInt32(Application["online"]) - 1;
        Application.UnLock();
    }
      
</script>

 

 

读取:

labTotal.Text = Application["total"].ToString();

posted @ 2013-03-11 12:04  天涯海角路  阅读(231)  评论(0)    收藏  举报