在asp.net中,使用try,catch,当有异常被catch时,存放在Session中的变量会失效,是什么原因? 
现在做的系统中,总是因为session失效而出现问题。后来发现在系统中有异常被捕获时,Session就会失效。真的不明白是什么原因,怎样才可以防止session失效呢? 
有哪位大侠知道,给我讲讲,不胜感激!
我用的是vs.net2003

解决方案 »

  1.   

    Session失效的原因
    http://www.kbalertz.com/sresults.aspx?sw=session+lost&st=1&stec=350另外,iis6的应用程序池的设置检查
      

  2.   

    try  catch  和session失效没有什么关系吧
      

  3.   

    你可以转变Session的存储方式,放到服务器端,这样Session会很稳定,具体怎样实现请在web.config中配置
    <sessionState 
                mode="StateServer"       
                stateConnectionString="tcpip=127.0.0.1:42424"
                sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
                cookieless="false" 
                timeout="20" 
        />
    然后开启本地asp.net SessionState服务
      

  4.   

    放在服务器端怎么分别同一名的session是谁的?会不会出现覆盖现象?比如登陆就加一个session["Name"]="登陆者名",我在某个网页中想得到这个Name会不会出错?
      

  5.   

    谢谢你们,还是csdn上的高手多啊,呵呵!net_lover(孟子E章),就是网络上传说中的那个孟子E章吧, 以前就读过一些你的文章,能得到你的回复很荣幸呢。
    看了你给的文章,其中有一句讲到,Session data is lost when you use asp.net inproc session state mode if the Bin directory of the Web application was modified.我想我们系统中的session失效可能就是因为这个原因吧,程序中我在catch到异常时会把错误信息以文件的方式写到bin目录下的一个log.txt文件中,session失效可能是改动bin文件夹下的文件所致。还有个问题想问大家一下就是记录程序的运行日志采用写文件的方式是不是合理,采用什么方式比较好?我以前做cs结构程序(都是采用文件记录日志),转到bs做项目,什么都靠自己摸索,所以问题可能比较笨^_^ ~ ~!qiushuangqun(探索是一种精神,值得表扬!) 
    谢谢你,如果session还失效,就用你的办法试试!等我解决好这个session失效问题,就回来散分!
    再次谢过!