“/Index”应用程序中的服务器错误。
--------------------------------------------------------------------------------未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 36: if(!Page.IsPostBack)
行 37: {
行 38: if((Session["User_Name"]!=null)||(Session["User_Name"].ToString()!=""))
行 39: {
行 40: try
源文件: C:\Inetpub\wwwroot\Index\Controls\AdminControl.ascx.cs 行: 38 堆栈跟踪:
[NullReferenceException: 未将对象引用设置到对象的实例。]
Index.Controls.AdminControl.Page_Load(Object sender, EventArgs e) in C:\Inetpub\wwwroot\Index\Controls\AdminControl.ascx.cs:38
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Control.LoadRecursive() +98
System.Web.UI.Control.LoadRecursive() +98
System.Web.UI.Page.ProcessRequestMain() +731
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573
--------------------------------------------------------------------------------未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 36: if(!Page.IsPostBack)
行 37: {
行 38: if((Session["User_Name"]!=null)||(Session["User_Name"].ToString()!=""))
行 39: {
行 40: try
源文件: C:\Inetpub\wwwroot\Index\Controls\AdminControl.ascx.cs 行: 38 堆栈跟踪:
[NullReferenceException: 未将对象引用设置到对象的实例。]
Index.Controls.AdminControl.Page_Load(Object sender, EventArgs e) in C:\Inetpub\wwwroot\Index\Controls\AdminControl.ascx.cs:38
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Control.LoadRecursive() +98
System.Web.UI.Control.LoadRecursive() +98
System.Web.UI.Page.ProcessRequestMain() +731
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573
分析一下
session 不为空时
没问题
session 过期后
Session["User_Name"]!=null 不符合
又因为是 ||,所以就运行到后面去,Session["User_Name"].ToString() 必报错
解决办法是:
改为
if((Session["User_Name"]!=null)&&(Session["User_Name"].ToString()!=""))
再分析一下
session 不为空时 运行到后面不报错
session 过期后
Session["User_Name"]!=null 不符合 马上否定 后面语句不会运行 不报错结论就是,改:
if((Session["User_Name"]!=null)&&(Session["User_Name"].ToString()!=""))