ASP.NET会话丢失,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的进程中。 
缺点:易丢失,经常需要重新登录
StateServer模式
优点:session状态单独存储在一个进程中,不会因为iis或者应用的重启而丢失状态 
缺点:获取session状态的速度比InProc慢一些,毕竟是两个不同的进程。
IIS中设置超时时间
除了代码中设置了超时时间,还需要在IIS中修改响应配置才能不让Session失效
IIS管理器->应用程序池->高级设置 
修改回收标签下【固定时间间隔】和进程模型标签下【闲置超时】

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值