zoukankan      html  css  js  c++  java
  • ASP.NET: Cookie会话丢失,Session超时配置

    问题描述:

    asp.net应用中web.config的SessionState节点:原先是

    <sessionState mode="InProc" timeout="120"/>

    出现时间未到会话就丢失的情况原因是该配置将Session保存在IIS进程中,不稳定,导致Session丢失

    解决方法:
    将参数mode修改为 StateServer,将Session状态单独存储在一个进程中,不会因为iis或者应用的重启而丢失状态
    修改如下:

    <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="600"/>

    注:使用StateServer模式的时候1、要开启“ASP.NET State Service”服务(设为“自动”)
    InProc模式
    优点:获取session状态的速度快,session状态直接存储在iis的进程中。
    缺点:易丢失,经常需要重新登录

    此外,更要注意的是:

    IIS中设置超时时间
    除了代码中设置了超时时间,还需要在IIS中修改响应配置才能不让Session失效
    IIS管理器->应用程序池->高级设置 

    修改回收标签下【固定时间间隔】和进程模型标签下【闲置超时】

    SESSION丢失问题解决办法

    1、在WEB.CONFIG文件中修改SESSION状态保存模式,如:<sessionState mode='StateServer' stateConnectionString='tcpip=127.0.0.1:42424' sqlConnectionString='data source=127.0.0.1;Trusted_Connection=yes' cookieless='false' timeout='180'/> 

    2、启动系统服务“ASP.NET状态服务 ”,系统默认是手动启动的 

    3、如果SESSION中保存的数据类型是自定义的,如结构,请在自定义数据类型处序列化会话状态,即在类或结构申明前加[Serializable]

  • 相关阅读:
    java多线程学习-同步之线程通信
    java多线程学习-同步(synchronized)
    java多线程学习-开篇
    面向对象-多线程-异常机制-查漏补缺
    Sprin2.5+Hibernate3.3+Struts2.0.11集成
    Strut1.3+Sprin2.5+Hibernate3.3集成
    Sprin2.5+Hibernate3.3集成
    Spring学习笔记
    Hibernate学习笔记
    Sping
  • 原文地址:https://www.cnblogs.com/Fooo/p/10100342.html
Copyright © 2011-2022 走看看