刚上线的网站session老丢失!!
  直接点解决!

解决方案 »

  1.   

    用SessionState
    你在网上搜一下吧,很多的
      

  2.   

    配置文件中设置
    <system.web>
        <sessionState timeout="30"></sessionState>
    时间大一点
      

  3.   

    把session的值另外保存在一个静态类的集合里面,进行添加或移除操作。
      

  4.   

    配置文件中设置
    <system.web>
    <sessionState timeout="30"></sessionState>UP不能超过24小时~
      

  5.   

    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
     
     
      

  6.   

    试过了 
    报错,不明白 :
    无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。 
      

  7.   

    session和cookie结合使用也可以,session丢失了找cookie.
      

  8.   


    是管理员后台登录  session和cookie结合???
      

  9.   

    是这样的,Session丢失的原因有很多,可能大多数你能遇到的就是你的代码异常了,导致w3wp进程重启,所以Session会丢失解决方法有两种:
    1. 改代码,查错,这是解决问题的根本办法,否则你的站点运行效率会很低2. 更改Session的存储方式,可以改成sql server,或者stateserver都可以至于无法序列化Session,你看看你是不是往Session里添加了 没有标记为可序列化的对象
      

  10.   

    1.除了丢失 都很正常 不知你说的改代码 查错误 从何进行2.我更改Session的存储方式,成stateserver 就报错 无法序列化Session
      

  11.   


    就是创建session时往集合里添加一个元素,销毁session时将集合里的相应元素销毁。
    还有说错了,不是静态类,是在全局文件global.asax中创建集合。
      

  12.   

    http://blog.csdn.net/wl_ldy/archive/2010/07/13/5731841.aspx
     希望对你有帮助
      

  13.   

    默认session有效时间只有20分钟,你把时间定义长一点吧! 
    在配置文件中设置方式
    <system.web>
      <sessionState timeout="30"></sessionState>
      

  14.   

    session丢失很正常,但只设置它的时间也解决不了他的丢失问题,要是不想不丢失最好的办法就是把化放在数据库中去
      

  15.   


    没有意义。很明显,如果到了这个时间,还叫做“丢失Session”吗?
      

  16.   

    Session 丢失指的是在online时,Session中的数据不见了。解决的方法很多,但要先从配置文件开始,一般可以解决。在设置sessionState 中的timeout前,你要确保slidingExpiration为真。所以,以下的代码一般能解决Session丢失的问题。<system.web>
      <compilation debug="true" targetFramework="4.0" />
    ...
      <authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx"
      timeout="20"
      slidingExpiration="true" cookieless="AutoDetect"
      protection="All"
      requireSSL="false"
      enableCrossAppRedirects="false"
      defaultUrl="Default.aspx"
      path="/"
      />
      
      </authentication>
      <sessionState mode="InProc" cookieless="false" timeout="20" />
     
    ...
    </system.web>
      

  17.   

    你说的丢失是否是:你设置了timeout=30,但不到30分钟就丢失了。
    1。估计你的IIS上的Session 存储时间设置的不对
    2。你的程序上的问题,有些信息比如Dataset或是DataTable如果用Session 存储的话,会丢失行或其他一 些内容的状态信息
      

  18.   

    需要长时间停留的页面,进入之后,重新赋值一下!
    string str=Session["dd"].ToString();
    Session.Remove("dd");
    Session["dd"]=str;
      

  19.   

    我一个站因为sessions丢失问题花了一天时间改成了cookies,推荐能用cookies的地方用cookies,session丢失问题原因太多实在是不好解决。。
      

  20.   


    是这样的。避免以(默认的)InProc模式使用Session,除了当你拥有服务器时可以选择各种服务器解决方案,最简单的方法就是在设计应用程序的当初就不使用Session集合。当Session集合数据丢失时,其实SessionID并不丢失。因此严格说“session丢失”是有歧义的,不过可以理解,因为Session集合被误解得太深了(因为连static变量都也是一样全都丢失了啊)。
      

  21.   

    并不是一定只是使用cookie。实际上大多数需要持久化的东西,可以保存在服务器端,然后使用数据缓存技术提高其效率。
      

  22.   

    UP...这种情况原因很多,建议用COOKIE
      

  23.   

    <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来保存用户的登录名,权限等信息。仔细检查所有代码后发现,只有在session不存在或不具有某种权限的用户访问了需要该权限才能访问的页面的情况下才会被系统弹出登录界面。我们又以admin超级管理员账户登录,该账户拥有系统所有的权限,但是仍然存在该问题,因此不可能是因为权限不正确而被弹出系统的。
    我们又猜测可能是因为session失效时间过短引起该问题。但是检查后发现,在服务器默认设置中,session失效时间是20分钟,即鼠标键盘无动作20分钟后session将自动失效,session失效后系统将不能登录,为了验证是否是session超时而被弹出,我们在实际测试中不停的操作,但是仍然存在该问题,登录系统后最短时间几秒,最长时间不过几分钟即会被弹出系统,因此不可能是因为session超时引起的。
    鉴于在本地服务器上测试无任何问题,因此应该与服务器有一定关系。通过咨询服务器管理老师,发现在该服务器上托管了大量网站,而这些网站的日常访问量均比较多,各个网站的访问量加起来是巨大的,因此我们猜测可能是因为session的存储模式引起的该问题。通过查询资料得知,ASP.NET中Session的存储模式有以下三种:
    1、InProc  
      session存储在进程内,即inetinfo.exe这个进程中。
    2、SQLServer  
      会话状态将使用进程外 SQL Server 数据库来存储状态信息。  
    3、StateServer  
      会话状态将使用进程外 ASP.NET 状态服务来存储状态信息。
      而IIS默认是以InProc方式来存储session的,即存储在 IIS进程中,也就是inetinfo.exe这个进程。当inetinfo.exe进程不稳定或崩溃时,这些信息也就会丢失。另外,当IIS关闭,重启时Session信息也会丢失。
    通过分析,我们认为可能是因为该服务器上网站过多,频繁的网站访问使inetinfo.exe这个进程不稳定从而导致了session的丢失从而被弹出系统。  解决方法:
      我们更改了session的存储方式,以StateServer服务方式来存储session,并开启了远程服务器上的stateserver服务,修改后测试时再也没有出现这个被弹出系统的问题。问题得到解决。
      

  24.   

    我觉得还是sqlstate的方式比较好
      

  25.   

    <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来保存用户的登录名,权限等信息。仔细检查所有代码后发现,只有在session不存在或不具有某种权限的用户访问了需要该权限才能访问的页面的情况下才会被系统弹出登录界面。我们又以admin超级管理员账户登录,该账户拥有系统所有的权限,但是仍然存在该问题,因此不可能是因为权限不正确而被弹出系统的。
    我们又猜测可能是因为session失效时间过短引起该问题。但是检查后发现,在服务器默认设置中,session失效时间是20分钟,即鼠标键盘无动作20分钟后session将自动失效,session失效后系统将不能登录,为了验证是否是session超时而被弹出,我们在实际测试中不停的操作,但是仍然存在该问题,登录系统后最短时间几秒,最长时间不过几分钟即会被弹出系统,因此不可能是因为session超时引起的。
    鉴于在本地服务器上测试无任何问题,因此应该与服务器有一定关系。通过咨询服务器管理老师,发现在该服务器上托管了大量网站,而这些网站的日常访问量均比较多,各个网站的访问量加起来是巨大的,因此我们猜测可能是因为session的存储模式引起的该问题。通过查询资料得知,ASP.NET中Session的存储模式有以下三种:
    1、InProc   
      session存储在进程内,即inetinfo.exe这个进程中。
    2、SQLServer   
      会话状态将使用进程外 SQL Server 数据库来存储状态信息。   
    3、StateServer   
      会话状态将使用进程外 ASP.NET 状态服务来存储状态信息。
      而IIS默认是以InProc方式来存储session的,即存储在 IIS进程中,也就是inetinfo.exe这个进程。当inetinfo.exe进程不稳定或崩溃时,这些信息也就会丢失。另外,当IIS关闭,重启时Session信息也会丢失。
    通过分析,我们认为可能是因为该服务器上网站过多,频繁的网站访问使inetinfo.exe这个进程不稳定从而导致了session的丢失从而被弹出系统。  解决方法:
      我们更改了session的存储方式,以StateServer服务方式来存储session,并开启了远程服务器上的stateserver服务,修改后测试时再也没有出现这个被弹出系统的问题。问题得到解决。
    支持以上的说明.分析的正确,处理方法也不错,楼主可以值得一试.
      

  26.   

    看我曾经的帖子 
    http://topic.csdn.net/u/20100721/14/9c6b2d58-05a7-40ff-9e9f-39eec8e25043.html
    最后面有解决办法
      

  27.   

      方法:
    1.在页面@pagez指令后加上EnableSessionState=true或者readeonly.
      2.配置文件中修改为:<sessionState mode="StateServer" stateNetworkTimeout="20" stateConnectionString="tcpip=127.0.0.1:42424" />
      3.改计算机服务中的StateServer由手动改为自动。EnableSessionState=true 那个页面加? 是继承页面  还是存Session页面?
      

  28.   

    对sessionState  进行设置