解决方案 »

  1.   

    是不是session里没值了  sql少参数所以插入数据库出错了
      

  2.   

    LZ用SQLSERVER的sql跟踪器看看 SQL语句有没有被执行到
      

  3.   

    楼主可能请求了一个Session已经销毁的参数,导致程序异常了
      

  4.   

    大家说的没错,我开始也怀疑会话结束时造成一些会话信息丢失,所以用了文本形式,下面是我的代码,        System.IO.StreamReader sr = new System.IO.StreamReader("theLeavingLastPerson.txt");
            string userId=sr.ReadLine();
            sr.Close();
            string sql = string.Format("update a1User set UlogoutTime='{0}',UfocusFieldforVipIsNotRefreshed=1 where userId={1} ", DateTime.Now.ToString(), userId);
            DbHelper.ExecuteCommand(sql);
    具体的代码内容我不说了,现在看起来这段代码也有写问题但这段代码最核心的是我想得到这个会话用户的身份userId(之前使用form认证的user.identity.name,结果验证在这个事件函数运行时已经自动丢失了,所以采用记事本的方式),因此,想问大家如何在会话20分钟自动注销时得到这个会话用户的身份id,这是我这个帖子的核心,需要大家提供一些思路
      

  5.   

    你先调试确定错误原因而不是直接看到没有写成功。调试的方法可以用try/catch捕获错误信息,写日志。
      

  6.   

    很容易重现bug的。启动调试的的时候有个编译的过程,session 就被销毁了,然后你不就可以断定调试了?