2010-10-14 91 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;