[置顶] 如何统计网站访问量,代码实现使用全局变量 Application,start,end,Session_start,Session_end事件

 

 void Application_Start(object sender, EventArgs e)

    {

        // 在应用程序启动时运行的代码

        long totalCount = 0; //总访问数

        int todayCount = 0;//今天在线人数

        //先从XML中取得访问数

        string xmlFilePath = Server.MapPath("~/") + "App_Data//xmls//count.xml"; //XML文件路径

        DataSet ds = new DataSet();

        ds.ReadXml(xmlFilePath);

        totalCount = Int64.Parse(ds.Tables[0].Rows[0]["TotalCount"].ToString().Trim());

        //设置Application,设置在线数量,总访问数量

        Application["total_count"] = totalCount;

        Application["today_count"] = todayCount;

}

    void Session_Start(object sender, EventArgs e)

    {

        // 在新会话启动时运行的代码

        Application.Lock();//锁定

        long totalCount = 0; //总访问数

        int todayCount = 0;//今天访问数

        totalCount = Convert.ToInt64(Application["total_count"]);

        todayCount = Convert.ToInt32(Application["today_count"]);

        totalCount++;//用户登录,以后才修改访问总数

        todayCount++;//在线用户数量加 1

        Application["total_count"] = totalCount;

        Application["today_count"] = todayCount;

        //把访问数写如到XML文件中

        string xmlFilePath = Server.MapPath("~/") + "App_Data/xmls/count.xml"; //XML文件路径

        XmlDocument xmlObj = new XmlDocument();

        xmlObj.Load(xmlFilePath);

        XmlNode xmlRootOjb = xmlObj.SelectSingleNode("Web/AccessInfo/TotalCount");

        xmlRootOjb.InnerText = totalCount.ToString();//增加总的访问量,并修改xml总访问量的值

        xmlObj.Save(xmlFilePath);

        Application.UnLock();//解锁

 }

    void Session_End(object sender, EventArgs e)

    {   //这里主要计算登录用户

        Application.Lock();

        Application["today_count"] = Int32.Parse(Application["today_count"].ToString()) - 1;

        //当用户离开站点的时候,在线总数减1

        Application.UnLock();

 }

原文地址:https://www.cnblogs.com/luofuxian/p/2377476.html