session {“对象引用未设置为对象的实例。”} System.Exception {System.NullReferenceException}

时间:2013-02-13 13:57:03

标签: c# asp.net session visual-studio-2012

我是ASP.NET的新手,我遇到了问题。我正在努力管理已经写好的网站。当我到达以下行时出现此错误:

if (Session["usertype"].Equals("2"))
{

}
上一页已经分配了

Session["usertype"]。在这个当前页面上,我松开了所有会话变量(我在调试中检查过它)。

登录后按照以下方式分配会话

Session["usertype"] = "2"
登录后

页面,10秒后刷新。那是我放松会话的地方。 请让我知道,这里有什么不妥。

4 个答案:

答案 0 :(得分:1)

如果您获得NullReferenceException,则会话值将以null的形式返回。您应该检查一下:

var userType = (string)Session["usertype"];
if(userType == null) {
    // .. things to do if no session value
} else {
    // test "2" etc
}

可能是会话状态被禁用,或者实际上没有设置值。

答案 1 :(得分:1)

检查Session变量是否为Null -

     if( Session["usertype"] != null )
    {
         //Now check your condition here
    }
   else {
           //Perform any operation
        }

答案 2 :(得分:0)

您使用的是WebForms还是MVC?在WebForms中,会话状态直到页面Init。

之后才可用

答案 3 :(得分:0)

你的过程超过10秒? 您可以更改 IIS中会话的长度 。打开IIS,单击您的网站,选择Session State(ASP.NET选项卡),查看State-Server,更改Time-out(默认值:10秒)