关于asp.net:System.NullReferenceException:对象引用未设置为C#中对象的实例

System.NullReferenceException: Object reference not set to an instance of an object in C#

本问题已经有最佳答案,请猛点这里访问。

我在global.asax文件中编写了以下代码

1
2
3
4
5
6
7
8
9
10
void Application_PreRequestHandlerExecute(object sender, EventArgs e)
    {        
        ConnStr = objConnStr.GetConnectionString();


        if (HttpContext.Current.Session["LOGIN"] != null  )

        {  
 }
}

它在*httpcontext.current.session["login"]处引发以下错误*

描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。

异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。

问题可能是什么?


这很可能是因为HttpContext.Current.Session为空。你需要这样做:

1
2
if (HttpContext.Current.Session != null
    && HttpContext.Current.Session["LOGIN"] != null)

现在,EDOCX1[1]也可以为空。然而,在几乎所有的实际情况下(特别是在ASP中),您可以做出一个公平的假设,即它不会是空的。事实上,我当前版本的resharper甚至没有对current大喊大叫,可能是空的。所以,这更像是一个旁注:你的问题很可能来自于Session