日期:2014-05-19  浏览次数:20458 次

问个小问题,请帮个忙
在asp.net里很久没有写聊天室了,今天写了个简单的,发现问题不少,我技术不咋的,还望朋友们帮忙
Global.asax.cs大致如下  
protected   void   Session_Start(Object   sender,   EventArgs   e)
{
Application.Lock();
Application[ "UserTotal "]=int.Parse(Application[ "UserTotal "].ToString().Trim())+1;
Application[ "UserNum "]=int.Parse(Application[ "UserNum "].ToString().Trim())+1;
Application.UnLock();
}


protected   void   Session_End(Object   sender,   EventArgs   e)
{
                  Application.Lock();
Application[ "UserNum "]=int.Parse(Application[ "UserNum "].ToString().Trim())-1;
Application.UnLock();
}
记人名的大致如下
Session[ "UserName "]+=this.txtName.Text+ ", ";
Response.Redirect( "Main.htm ");
我测试了一下,怎么Session[ "UserName "]不管有几个人进来,都只记录近来的那个人的id。
还有退出的时候我明明在Session_End里面减掉1了,怎么在线人数没有减1,下次登陆上来还是继续在原有基础上+1个人???



------解决方案--------------------
有退出的时候我明明在Session_End里面减掉1了,怎么在线人数没有减1,下次登陆上来还是继续在原有基础上+1个人???
因为你退出时,只减了session连接数,在页面显示里没有处理。

怎么Session[ "UserName "]不管有几个人进来,都只记录近来的那个人的id。

多做几个SESSION,做成队列。
------解决方案--------------------
第一题没明白你的意思

第二题可能是因为你包含了好几个用户控件造成的

我遇到过第二个问题
------解决方案--------------------
错了,做HASH表吧。队列出列时你就不好处理了。