.Net源码论坛 [ 繁体中文 ]

发新话题 回复该主题

VS2005下实现asp.net在线人数的统计 [复制链接]

楼主
首先在项目中选择“添加新项”,添加“Global.asax”全局变量文件 using System; using System.Collections; using System.ComponentModel; using System.Web; using System.Web.SessionState; using System.IO ; namespace movie { /// <summary> /// Global 的摘要说明。 /// </summary> public class Global : System.Web.HttpApplication {   /// <summary>   /// 必需的设计器变量。   /// </summary>   private System.ComponentModel.IContainer components = null;   public Global()   {     InitializeComponent();   }      protected void Application_Start(Object sender, EventArgs e)   {             Application["conn"]="Server=localhost;database=movie;uid=sa;pwd='zcc';";     Application["user_sessions"] = 0;     Application["counter_num"]=0;     uint count=0;     StreamReader srd;     //取得文件的实际路径     string file_path=Server.MapPath ("counter.txt");     //打开文件进行读取     srd=File.OpenText (file_path);     while(srd.Peek ()!=-1)     {     string str=srd.ReadLine ();     count=UInt32.Parse (str);     }     object obj=count;     Application["counter"]=obj;     srd.Close ();   }   protected void Session_Start(Object sender, EventArgs e)   {     Application.Lock();     Application["user_sessions"] = (int)Application["user_sessions"] + 1;     Application.UnLock();     Application.Lock ();     //数值累加,注意这里使用了装箱(boxing)     uint jishu=0;     jishu=(uint)Application["counter"];     jishu=jishu+1;     object obj=jishu;     Application["counter"]=obj;     //将数据记录写入文件     string file_path=Server.MapPath ("counter.txt");     StreamWriter fs=new StreamWriter(file_path,false);     fs.WriteLine (jishu);     fs.Close ();     Application.UnLock ();   }   protected void Application_BeginRequest(Object sender, EventArgs e)   { //    Application.Lock(); //    Application["counter_num"]=(int)Application["counter_num"]+1; //    Application.UnLock();   }   protected void Application_EndRequest(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)   {     Application.Lock();     Application["user_sessions"] = (int)Application["user_sessions"] - 1;     Application.UnLock();   }   protected void Application_End(Object sender, EventArgs e)   {     uint js=0;     js=(uint)Application["counter"];     //object obj=js;     //Application["counter"]=js;     //将数据记录写入文件     string file_path=Server.MapPath ("counter.txt");     StreamWriter fs=new StreamWriter(file_path,false);     fs.WriteLine(js);     fs.Close ();   }      #region Web 窗体设计器生成的代码   /// <summary>   /// 设计器支持所需的方法 - 不要使用代码编辑器修改   /// 此方法的内容。   /// </summary>   private void InitializeComponent()   {         this.components = new System.ComponentModel.Container();   }   #endregion } }
分享 转发
从此我不再仰脸看青天,不再低头看白水,只谨慎着我双双的脚步,我要一不一不踏在泥土上,打上深深的脚印!
TOP
沙发

回复:VS2005下实现asp.net在线人数的统计

新手好好看看,有帮助
TOP
板凳

回复:VS2005下实现asp.net在线人数的统计

顶!!!!!!!!!!!!!!!!
TOP
地板

回复:VS2005下实现asp.net在线人数的统计

学习,谢谢
TOP
五楼

回复:VS2005下实现asp.net在线人数的统计

能详细说明一下吗?!
<%行者无疆%>
TOP
六楼

回复:VS2005下实现asp.net在线人数的统计

thank you!
TOP
七楼

回复:VS2005下实现asp.net在线人数的统计

学习...谢谢
TOP
八楼

回复:VS2005下实现asp.net在线人数的统计

嘿嘿。。努力中。谢谢主人可共享出来一起学习。。
TOP
九楼

回复:VS2005下实现asp.net在线人数的统计

呵呵,楼主的方式是用文件方式实现的。有优点也有缺点。 访问小的话没有问题, 流量大了,或者服务出问题了。操作比较困难。
TOP
十楼

回复:VS2005下实现asp.net在线人数的统计

当然优点也是明显的。构成简单,操作简单。呵呵~~
TOP
发新话题 回复该主题