将对象分配给会话时丢失对象吗?
问题描述:
我正面临一个很奇怪的问题。我得到一个错误对象引用未设置为服务器上的对象的实例,而代码在我的开发机器上运行正常。奇怪的部份是在代码抛出错误的行号(如出现在堆栈跟踪)将对象分配给会话时丢失对象吗?
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对象迷路,当我把它分配给会话。是对的吗?
答
你确定demoUser
是空引用,而不是imgPlayer
?
+0
+1:可能的原因 – TalentTuner 2010-10-14 14:03:01
+0
确实是原因。开发者和服务器上的代码是不同的,这意味着visual studio发布不会在这个文件上发布更改。奇怪的是,所有其他的变化似乎都反映出来了。 – shashi 2010-10-14 14:19:52
答
尝试:
demoUser = (DemoUser)Session["DemoUser"];
imgPlayer.ImageUrl = demoUser.UserPicture;
你说的这个堆栈跟踪在哪里?你确定你的'usr'对象(第一个if子句)有一个有效的UserPicture吗? – Oded 2010-10-14 13:59:11
雅,请发布堆栈跟踪异常 – TalentTuner 2010-10-14 14:01:15
'UserPicture'属性是否有任何可能导致问题的逻辑? – 2010-10-14 14:01:27