日期:2014-05-18  浏览次数:20491 次

ASP.NET2.0用ajaxpro.net做的聊天室,自己本机上测试可以,但在其它的机器测试,有的可以,有的会报错!
测试网址:http://221.130.183.119:8001/Live_Player.aspx?Liveid=171


为什么有的机器可以正常进入聊天室,而有的机器访问,会出现
将对象引用设置到对象的实例。  
说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  

异常详细信息:   System.NullReferenceException:   未将对象引用设置到对象的实例

源错误:  


行   56:                                   //if   (Request.Cookies[ "tmpUserInfo "]   !=   null)
行   57:                                   //{
行   58:                                   return   int.Parse(Session[ "roomid "].ToString());
行   59:                                   //}
行   60:                                   //return   User.Identity.Name;
 
 


------解决方案--------------------
return int.Parse(Session[ "roomid "].ToString());
改成

if(Session[ "roomid "] == null)
{
return -1;

}
else
{
return int.Parse(Session[ "roomid "].ToString());


}
------解决方案--------------------
http协议是短连接协议,你可以设计自己的聊天室服务器把http协议改成长链接,长链接的话就是IE发起socket保持不断线,服务器有什么数据就马上发过来,真正的不需要刷新。如果不能理解的话就只能去研究一下tcp/ip、http协议和socket了。