统计网站当天的访问量

 /// <summary>
        /// 今日访问人数
        /// </summary>
       public  static int todayCount;

        /// <summary>
        /// 更新今日访问数的标志
        /// </summary>
        static DateTime lastCleanUp;

        /// <summary>
        /// 锁对象
        /// </summary>
        static object _obj = new object();

        /// <summary>
        /// 日志文件的路径
        /// </summary>
        string logFile = AppDomain.CurrentDomain.BaseDirectory + "visitLog.txt";

        protected void Application_Start(object sender, EventArgs e)
        {

            //刚启动,为了防止服务器意外死机重启等因素,需要从记录文件中读取数目
            if (System.IO.File.Exists(logFile))
            {
                string[] lines = System.IO.File.ReadAllLines(logFile);
                if (lines.Length >= 2)
                {

                    int.TryParse(lines[0], out todayCount);
                    DateTime.TryParse(lines[1], out lastCleanUp);
                }
            }
          
        }

        protected void Session_Start(object sender, EventArgs e)
        {

            //锁定对象确定单线程访问
            lock (_obj)
            {
                //如果日期变化了,将今日访问归零
                if (DateTime.Now.Day != lastCleanUp.Day)
                {
                    lastCleanUp = DateTime.Now;
                    todayCount = 0;
                }

                //计数
                todayCount++;
             

                //为了防止服务器死机重启等意外因素丢失数据,每隔50个访客更新一下记录文件
                //这个需要根据访问量调整
                if (todayCount % 50 == 0)
                {
                    string[] fns = new string[] {  todayCount.ToString(), lastCleanUp.ToString() };
                    System.IO.File.Delete(logFile);
                    System.IO.File.WriteAllLines(logFile, fns);
                }

            }


            #region

            获取用户访问的页面
            //string pageurl = Request.Url.ToString();
            //if (pageurl.EndsWith("index.aspx")) //判断访问的是否是首页
            //{
            //    //锁定变量
            //    Application.Lock();
            //    //页面访问量加一
            //    Application["StatCount"] = int.Parse(Application["StatCount"].ToString()) + 1;
            //    //解锁
            //    Application.UnLock();
            //}

            #endregion

 

        }

        protected void Application_BeginRequest(object sender, EventArgs e)
        {

        }

        protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {

        }

        protected void Application_Error(object sender, EventArgs e)
        {

        }

        protected void Session_End(object sender, EventArgs e)
        {
          

        }

        protected void Application_End(object sender, EventArgs e)
        {
            //保存当前访问
            string[] fns = new string[] { todayCount.ToString(), lastCleanUp.ToString() };
            System.IO.File.Delete(logFile);
            System.IO.File.WriteAllLines(logFile, fns);
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值