2010-10-14 57 views
0

我正面临一个很奇怪的问题。我得到一个错误对象引用未设置为服务器上的对象的实例,而代码在我的开发机器上运行正常。奇怪的部份是在代码抛出错误的行号(如出现在堆栈跟踪)将对象分配给会话时丢失对象吗?

DemoUser demoUser = new DemoUser(); 

if (!Request.QueryString.AllKeys.Contains("name")) 
{ 
    playerName = usr.NinjaName; 
    demoUser.Email = usr.UserEmail; 
    demoUser.UserPicture = usr.UserPicture; 
} 
else 
{ 
    playerName = Request.QueryString["name"]; 
    demoUser.Email = String.Empty; 
    demoUser.UserPicture = "http://graph.facebook.com/1/picture"; 
}   

demoUser.EntryDateTime = DateTime.Now; 
demoUser.Name = playerName; 

Session["DemoUser"] = demoUser; 

imgPlayer.ImageUrl = demoUser.UserPicture; // This is throwing error. 

如果该行抛出错误,则demoUser对象迷路,当我把它分配给会话。是对的吗?

+1

你说的这个堆栈跟踪在哪里?你确定你的'usr'对象(第一个if子句)有一个有效的UserPicture吗? – Oded 2010-10-14 13:59:11

+0

雅,请发布堆栈跟踪异常 – TalentTuner 2010-10-14 14:01:15

+0

'UserPicture'属性是否有任何可能导致问题的逻辑? – 2010-10-14 14:01:27

回答

2

你确定demoUser是空引用,而不是imgPlayer

+0

+1:可能的原因 – TalentTuner 2010-10-14 14:03:01

+0

确实是原因。开发者和服务器上的代码是不同的,这意味着visual studio发布不会在这个文件上发布更改。奇怪的是,所有其他的变化似乎都反映出来了。 – shashi 2010-10-14 14:19:52

0

尝试:

demoUser = (DemoUser)Session["DemoUser"]; 

imgPlayer.ImageUrl = demoUser.UserPicture;