记住。
每次使用 Session 前都要判断Session是否存在。if(Session["test"] == null)
{
  Response.Write("不存在");
}

解决方案 »

  1.   

    Session_Start是指开始启用Session的时候执行的过程。这个时候Session根本不会过期,所以没有必要在这里对Session进行说明是不是为空.你可以在Session_End里面做处理,比如这个时候弹出一个窗口要求用户重新登陆
      

  2.   

    在Global.asax里面的Session_Start过程里判断,
    如果Session["acount"]==null则要求用户重新登录。
      

  3.   

    public static Account LoginAccount 
    {
       get { 
          object account = HttpContext.Current.Session["Acount"]; 
          if( account==null )
          {
              //方法一是return null;
              //方法二是重定向到Login页面:
              Response.Redirect( "Http://"+Server.MachineName+"/"+HttpContext.Current.Request.ApplicationPath+"/login.aspx" );
              //假设你的登陆页面在根目录下,这里要用绝对路径,相对路径不能满足所有的地方
          }
          return (Account)HttpContext.Current.Session["Acount"]; 
       }
       set { HttpContext.Current.Session["Acount"] = value; }
    }
      

  4.   

    纠正一点:
    Response应该改为:HttpContext.Current.Response