我是ASP.NET的新手,遇到了一个问题。我正在努力管理已经写好的网站。当我到达以下行时,我出现了这个错误:
if (Session["usertype"].Equals("2"))
{
}
Session["usertype"]
已在上一页上分配。在当前页面上,我释放了所有会话变量(我在调试中检查了它)。
会话在登录后按以下方式分配
Session["usertype"] = "2"
登录后页面,10秒后刷新。这就是我放松训练的地方。请告诉我,这里可能出了什么问题。
只需检查Session变量是否为Null-
if( Session["usertype"] != null )
{
//Now check your condition here
}
else {
//Perform any operation
}
如果您正在获取NullReferenceException
,那么会话值将返回为null
。你可能应该检查一下:
var userType = (string)Session["usertype"];
if(userType == null) {
// .. things to do if no session value
} else {
// test "2" etc
}
可能是会话状态被禁用,或者根本没有设置值。
您使用的是WebForms还是MVC?在WebForms中,会话状态直到页面初始化之后才可用。
您的流程是否超过10秒?您可以更改IIS中会话的长度。打开IIS,单击您的网站,选择会话状态(ASP.NET选项卡),查看状态服务器,更改超时(默认值:10秒)