013. asp.net统计网站访问人数
Global.asax中的代码:
<%@ Application Language="C#" %> <script runat="server"> void Application_Start(object sender, EventArgs e) { // 在应用程序启动时运行的代码 int count = 0; System.IO.StreamReader srd; //取得文件的实际路径 string file_path = Server.MapPath("counter.txt"); //打开文件进行读取 srd = System.IO.File.OpenText(file_path); while (srd.Peek() != -1) { string str = srd.ReadLine(); count = int.Parse(str); } srd.Close(); object obj = count; //将从文件中读取的网站访问量存放在Application对象中 Application["counter"] = obj; } void Application_End(object sender, EventArgs e) { // 在应用程序关闭时运行的代码 int Stat = 0; Stat = (int)Application["counter"]; //获取访问量 string file_path = Server.MapPath("counter.txt");//获取该文本的路径 System.IO.StreamWriter srw = new System.IO.StreamWriter(file_path, false); srw.WriteLine(Stat); srw.Close(); } void Application_Error(object sender, EventArgs e) { //在出现未处理的错误时运行的代码 } void Session_Start(object sender, EventArgs e) { // 在新会话启动时运行的代码 Application.Lock(); //锁定, 以便累加数据 //数据累加 int Stat = 0; //获取Application对象中保存的网站总访问量 Stat = (int)Application["counter"]; Stat += 1; object obj = Stat; Application["counter"] = obj; //将数据记录写入文件 string file_path = Server.MapPath("counter.txt"); System.IO.StreamWriter srw = new System.IO.StreamWriter(file_path, false); srw.WriteLine(Stat); srw.Close(); Application.UnLock(); } void Session_End(object sender, EventArgs e) { //在会话结束时运行的代码。 // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 // InProc 时,才会引发 Session_End 事件。如果会话模式 //设置为 StateServer 或 SQLServer,则不会引发该事件。 } </script>
页面的代码:
您是第<%=Application["counter"]%>位访问者