小弟网站后台是用session来判断是否登陆的,代码如下:            登录时设置session的值和有效期:
            Session("UserName") = InputUserName
            Session.Timeout = 30 'SESSION的生命周期为30分钟
            Response.Redirect("index.aspx")            访问时判断是否有session:             If Session("UserName") = "" Then
               Response.Redirect("Login.aspx")
             End If
以上代码在本地测试完全没有问题,本地电脑是win7系统(IIS7.5),但上传到服务器后(server2003,IIS6)出现问题:当登录后几秒后,再点击就会自动跳转到Login.aspx页面,应该是session丢失的致,问问高手们是否遇到过这样的问题,应该怎么解决?
另外,大家在后台做判断是否登录都用什么方法? 请赐教,谢谢!

解决方案 »

  1.   

    page_load 中判断sesion["']==null实现跳转
    session丢失原因很多
    Session是跟浏览器进程标识相关的。程序池经常重启
    <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20" />保存session
      

  2.   

    最好是服务器上支持StateServer服务,将Session放在单独的进程里管理比较稳定
      

  3.   

    2楼的朋友: 
    请问<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20" />是什么意思,我针对我自己的服务器应该怎么改才能用?另外,大家在做后台登录判断的时候都怎么做? 有什么好的办法 ? 谢谢
      

  4.   

    没有人能解决 session莫名其妙的丢失
      

  5.   

    win7系统
    没用过 帮你顶
      

  6.   

    感觉不是Session,如果服务器是你自己的,你可以看看事件日志,可能你的应用程序出现了问题,回收了。就和重启IIS类似。
      

  7.   

    你用框架了吧?直接用Forms验证多好呀或者
    改下web.config
    <sessionState cookieless="false" mode="InProc" timeout="60" ></sessionState>
    然后开启asp.net 状态服务
      

  8.   

    启用Session的StateServer模式。需要服务器开启asp.net状态服务
      

  9.   

    再者lz在处理session是否过期判断时可以封装一下,不然是不是每个后台页面都需要写一次判断的代码?
      

  10.   

    微软提出的解决办法是  打开sessionState 服务这样就可以解决session丢失的问题。