先判断一下你的Session["temp"]是不是已经为"" or null;

解决方案 »

  1.   

    什么是20分钟要提交一下?session_end不是进程池自己监控执行的吗?
    如果是20分钟后访问APP的话,访问过了呀,没执行
      

  2.   

    删除了Session_End里的其他操作,仅仅是把SessionEndNum自增,SessionEndNum是一个int32,初始化为0是在Application_Start里进行的,同时还做了一个SessionStartNum,做法和SessionEndNum是一样的,唯一不一样的是他的自增是在Session_Start里执行的
    我输出Session_Start和SessionEndNum的值后,SessionEndNum始终为0,Session_Start在超时后得到了自增,所以我判断会话正常结束了的,但Session_End里的操作却没被执行,如果会话没有结束,那在我刷新后不可能再次执行Session_Start则SessionStartNum也不会增加!可偏偏SessionStartNum在超过SESSION有效时间后的刷新里得到了自增,而Session_End却没有……头疼啊各位高手救命啊
    protected void Session_End(Object sender, EventArgs e)
    {
    SessionEndNum++;
    }
      

  3.   

    断点里我都看到执行了,可SessionEndNum++;就是没得到操作?
      

  4.   

    我KAO,不是吧
    救命啊~~~谁来帮帮我呀
      

  5.   

    session_end 时执行的操作是不能再反映在控件上的,因此一般方法也体现不出来
    你可以在session_end里面设置一个session值来判断是否执行
      

  6.   

    我就是在session里设置了一个值,然后用Response.write写出来
    我用DEBUG模式明明看到那条语句被执行了,可设置的值就是没有!
    而且,我刷新了很多次,所以不存在赋值先后顺序的问题
      

  7.   

    session_end时好时坏的。靠微软!