时不时出现-object reference not set to an instance of an boject,

020job 2013-01-03 03:31:32
客户反映出现 object reference not set to an instance of an boject



我怀疑是的问题 session

我们网站有不少客户,这个问题偶尔会出现,大概1000个人有一个人会有这个问题吧,

是什么问题啊,
下面是cookiele和Session 的取值
public static int EnterpriseID()
{
HttpContext context = HttpContext.Current ;

HttpCookie cookie=context.Request.Cookies["CookieLe"];

if(cookie.Values["enterpriseID"]==null||cookie.Values["enterpriseID"]=="")
{
//return 0;
}
else
{
return int.Parse(jiemi_Des(cookie.Values["enterpriseID"]));
}

if (context.Session["enterpriseID"] == null || context.Session["enterpriseID"].ToString() == "")
{
//return 0;
}
else
{
return int.Parse(context.Session["enterpriseID"].ToString());
}
return 0;
}


就是这里偶尔会出错的。


public static bool EnterpriseAuthenticated()
{
HttpContext context = HttpContext.Current ;

if (context.Session["enterpriseID"] == null || context.Session["enterpriseID"].ToString() == "")
{
//return(false);
}
else
{
return (true);
}
if (context.Request.Cookies["CookieLe"] == null)
return false;

HttpCookie cookie=context.Request.Cookies["CookieLe"];

//string name=cookie.Values["name"];
//string age=cookie.Values["age"];

if(cookie.Values["enterpriseID"]==null||cookie.Values["enterpriseID"]=="")
{

}
else
{
int intmy = IsNumeric(cookie.Values["enterpriseID"]);
if (intmy > 0)
return false;
else
return true;

}



return false;
}



取值之前我都会判断的,也不知道为啥会出现那个错误。
...全文
1851 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
orain 2013-01-04
  • 打赏
  • 举报
回复
你并没有确认过 session 是否有效,我指的是 context.Session != null,在 ASP.NET 中,Session 常常会因为一些莫名其妙的原因丢失。
一一一一 2013-01-04
  • 打赏
  • 举报
回复
if (context.Session["enterpriseID"] == null || context.Session["enterpriseID"].ToString() == 不要直接.ToString()写个方法判断是不是为null 或者写个三元判断一下 if (context.Session["enterpriseID"] == null||(context.Session["enterpriseID"]==null?true:context.Session["enterpriseID"].ToString()==""))
020job 2013-01-04
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
哪一行出错? 如果连哪一行都不能指出来,你还要怎样来除错呢?所以最关键地是报告尽可能的详尽的异常信息,而不是像你这样(也许是根本没有在意过)把重要的错误行号等信息给剪切掉。 “取值之前我都会判断的”这通常并不能除错。就好像一个得了肺癌的人遇到问题就停止呼吸,这只能让问题爆发在后头,而不能除错。真正的除错态度就是尽早地重现bug,而且认真记录到底是哪一行、哪一个……
上面写的是这一行出错了, EnterpriseID(),111行么? 我们程序已经运行了好几年了,以前还真没有在意这个问题。
翔教授 2013-01-04
  • 打赏
  • 举报
回复
引用 楼主 020job 的回复:
客户反映出现 object reference not set to an instance of an boject context.Session["enterpriseID"] == null || context.Session["enterpriseID"].ToString() == ""
这样判断是有问题的,如果cookie.Values["enterpriseID"]==null,context.Session["enterpriseID"].ToString()就会出错
Assassin_ 2013-01-04
  • 打赏
  • 举报
回复
条件判断的地方不合理。 看看这个帖子。http://bbs.csdn.net/topics/80022010
020job 2013-01-04
  • 打赏
  • 举报
回复
引用 9 楼 loveASUS 的回复:
引用 6 楼 020job 的回复:引用 2 楼 sp1234 的回复:哪一行出错? 如果连哪一行都不能指出来,你还要怎样来除错呢?所以最关键地是报告尽可能的详尽的异常信息,而不是像你这样(也许是根本没有在意过)把重要的错误行号等信息给剪切掉。 “取值之前我都会判断的”这通常并不能除错。就好像一个得了肺癌的人遇到问题就停止呼吸,这只能让问题爆发在后头,而不能除……
解决了
简单Show 2013-01-04
  • 打赏
  • 举报
回复
不要用这种判断,用这种就OK,
string.isNullOrEmpty(cookie.Values["enterpriseID"])
loveASUS 2013-01-04
  • 打赏
  • 举报
回复
引用 6 楼 020job 的回复:
引用 2 楼 sp1234 的回复:哪一行出错? 如果连哪一行都不能指出来,你还要怎样来除错呢?所以最关键地是报告尽可能的详尽的异常信息,而不是像你这样(也许是根本没有在意过)把重要的错误行号等信息给剪切掉。 “取值之前我都会判断的”这通常并不能除错。就好像一个得了肺癌的人遇到问题就停止呼吸,这只能让问题爆发在后头,而不能除错。真正的除错态度就是尽早地重现bu……
if(cookie.Values["enterpriseID"]==null||cookie.Values["enterpriseID"]=="") { } else { int intmy = IsNumeric(cookie.Values["enterpriseID"]); if (intmy > 0) return false; else return true; } 应该这么写

  if(cookie.Values["enterpriseID"]!=null){
   if(cookie.Values["enterpriseID"]!=""){
      int intmy = IsNumeric(cookie.Values["enterpriseID"]);
      if (intmy > 0)
                    return false;
       else
                    return true;
   }
  }
天下如山 2013-01-04
  • 打赏
  • 举报
回复
嗯 这英文 很好懂 错就明白啦。
  • 打赏
  • 举报
回复
哪一行出错? 如果连哪一行都不能指出来,你还要怎样来除错呢?所以最关键地是报告尽可能的详尽的异常信息,而不是像你这样(也许是根本没有在意过)把重要的错误行号等信息给剪切掉。 “取值之前我都会判断的”这通常并不能除错。就好像一个得了肺癌的人遇到问题就停止呼吸,这只能让问题爆发在后头,而不能除错。真正的除错态度就是尽早地重现bug,而且认真记录到底是哪一行、哪一个变量是null,并找到其调用堆栈来分析为什么是null。 一旦除错的步骤做过几次,你就根本不需要写多余的“我都会判断null”这种东西了。反之,这就说明你根本没有经过高强度的测试就拿上去给用户凑合用了。
3610 2013-01-03
  • 打赏
  • 举报
回复
帮忙顶一下,有可能是补丁有问题啊

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧