最近在开发一.NET4.0系统时经常发生session丢失问题,导致用户频繁登陆,给客户造成不良的用户体验。应项目经理号召尽快解决此问题。

一、问题描述。

服务器:windows server 2003

硬   件:刀片机上的虚拟主机

环   境:mvc + oracle

具体描述:在我们公司自己的内部测试虚拟机上运行正常的测试服务器,把代码部署到正式环境中,在实际使用中发现,用户登录后不到20分钟就就掉线。频率很高。

二、解决方案。

解决方案一

刚开始以为是IIS设置的session超时时间太短导致系统自动回收了session,因此调整web.config的超时时间并同时修改IIS应用程序池的高级配置,设置回收的固定时间间隔的时长。设置过后观察一天,发现session丢失现有没有缓解。跟原来一样丢失严重。未能解决问题。开始并不是session设置时长的问题导致的session回收。原因排除。

解决方案二

既然不是因为session设置时长问题导致,那应该是IIS自动重启或内存回收导致的。因此想到单独把session放到单独的内存中去,看看是不是这个原因,由于程序开始并未考session丢失这种情况,因此在代码中都没有在使用session的地方打上[Serializable]标签,因此先在entity实体模型上打上标签。

打开服务,在服务中找到ASP.NET 状态服务,将启动类型设置自动,并右击设置为启动。启动相关的服务。

回到web.config设置<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="1440"/>,把session的模式设置为StateServer。

发布系统到正式环境观察,观察发现,在使用了ASP.NET状态服务后,登陆的session丢失问题解决,用户的session不在丢失。

三、总结

在开发系统过程中,经验不足,未考虑到测试环境和正式环境的差异,可能由于硬件软件条件不一样导致不同的结果,系统设计不合理,大量使用了session但是使用了IIS自己的内存管理机制,未考虑丢失情况,若刚开始使用第三方缓存来模拟session机制,如:memerbcach等。遇到问题通过不同方案定位原因,采用相应方案解决问题。

ASP.net状态服务器使用的更多相关文章

  1. Asp.Net进程外Session(状态服务器Session、数据库Session)

    介绍 我们知道,当浏览器关闭,或者网站重启的时候,会话就结束了.即Seesion就丢失了.(当Web.config配置文件改动,哪怕什么内容都不加,仅仅往配置文件中加一个空格都是改we.config变 ...

  2. 无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同。如果服务器位于远程计算机上,请检查。。。

    异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Ser ...

  3. 转:无法向会话状态服务器发出会话状态请求请。确保 ASP.NET State Service (ASP.NET 状态服务)已启动

    今天看到一篇文章感觉不错,收藏转载下. 原文地址:http://blog.csdn.net/sntyy/article/details/2090347 版权为原作者所有 无法向会话状态服务器发出会话状 ...

  4. 无法向会话状态服务器发出会话状态请求请。确保 ASP.NET State Service (ASP.NET 状态服务)已启动

    原文链接:http://www.cnblogs.com/IT-Bear/archive/2012/01/04/2311546.html 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET S ...

  5. 使用IIS服务器部署网页,需要开启服务里的“ASP.NET 状态服务”

    否则会提示“请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同.如果服务器位于远程计算机上,请检查 HKEY_LOCAL_MACHI ...

  6. ASP.NET 状态服务 及 session丢失问题解决方案总结

    ASP.NET2.0系统时,在程序中做删除或创建文件操作时,出现session丢失问题.采用了如下方法:1.asp.net Session的实现:asp.net的Session是基于HttpModul ...

  7. [转]ASP.NET 状态服务 及 session丢失问题解决方案总结

    转自[http://blog.csdn.net/high_mount/archive/2007/05/09/1601854.aspx] 最近在开发一ASP.NET2.0系统时,在程序中做删除或创建文件 ...

  8. 转载ASP.NET 状态管理Application,Session,Cookie和ViewState用法

    转载原地址 http://www.cnblogs.com/cuishao1985/archive/2009/09/24/1573403.html ASP.NET状态管理 APPlication,Ses ...

  9. ASP.NET状态服务及session丢失问题解决方案总结

    原文:ASP.NET状态服务及session丢失问题解决方案总结[转载] asp.net Session的实现: asp.net的Session是基于HttpModule技术做的,HttpModule ...

随机推荐

  1. jsp去掉小数点

    <fmt:formatNumber value="${zyUser.user_gold}" pattern="0"/>

  2. px4flow通过iic读取具体寄存器数据程序

    底层通信用了昨天写好的iic,今天结合官方资料成功读出所有指定寄存器的数据附上源码 include.h主要包括了一些stm32 IO控制的宏定义,具体参考正点原子所有例程中都有的sys.h头文件 in ...

  3. Swift基础语法(二)

    操作符 swift中运算符基本基础于c,下面我就给大家白话白话那些被优化过的运算符们 //加号减号的妙用 var a= var b= -a//此时b=-1 var c = +b//此时 c=-1 va ...

  4. javaWeb开发小工具---MailUtils及其单元测试

    本次介绍的是,在javaWeb开发中,我们不免会遇到发送邮件的需求,比如:用户注册账号,需要激活登录,以及服务器定期向会员发送礼品信息等.所以参考有关资料,写了这个MailUtils工具类. 1.Ma ...

  5. gulp 配置前端项目打包

    项目发布时,需要对项目js文件进行压缩,混淆,连接等操作以减小项目http请求,加快访问. gulpjs.com中有很多插件可以用来配置打包部署. 需要用的常用插件有: gulp-jsmin  压缩j ...

  6. Java SE、Java EE、Java ME

    Java SE(Java Platform,Standard Edition).Java SE 以前称为 J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程序.J ...

  7. player.swf播放flv方式

    <embed src="../images/player.swf" allowFullScreen="true" quality="high&q ...

  8. erlang日志功能。

    用cowboy这个库,没有日志功能,所以研究了otp提供的日志功能. 1.启动SASL的方式 erl –boot start_sasl 默认配置文件下启动SASL, {env, [{sasl_erro ...

  9. make基础(转)

    1. 基本规则 请点评 除了Hello World这种极简单的程序之外,一般的程序都是由多个源文件编译链接而成的,这些源文件的处理步骤通常用Makefile来管理.Makefile起什么作用呢?我们先 ...

  10. Ms - Sql 定位附近的人

    数据库结构: T_Users longitude decimal(6,0) latitude decimal(6,0) 经纬度:113.284137,23.184625 查出周围2公里以内的人: se ...