最近在开发一.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. Ajax Step By Step2

    第二.[$.get()和$.post()方法] .load()方法是局部方法(有需要父$),因为他需要一个包含元素的 jQuery 对象作为前缀.而$.get()和 $.post()是全局方法,无须指 ...

  2. 判断Window在哪个屏幕

    最近在做窗口最大化时需要一个功能,如果是多个显示器的话,需要在当前显示器最大化,由于是根据屏幕长宽进行设置Window大小,没有使用WindowState.Maximized,window.Left不 ...

  3. 设计模式可复用面向对象软件设计基础之对象创建型模式—ABSTRACT FACTORY( 抽象工厂)

    意图 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 适用性 在以下情况可以使用 Abstract Factory模式 • 一个系统要独立于它的产品的创建.组合和表示时. • 一 ...

  4. 62. Unique Paths && 63 Unique Paths II

    https://leetcode.com/problems/unique-paths/ 这道题,不利用动态规划基本上规模变大会运行超时,下面自己写得这段代码,直接暴力破解,只能应付小规模的情形,当23 ...

  5. 算法入门笔记------------Day2

    1.开灯问题 有n盏灯,编号为1-n,第一个人把所有灯打开,第二个按下所有编号为2的倍数的开关(这些灯都被关掉),第三个人按下所有编号为3的倍数的开关,依次类推,一共有k个人,问最后有哪些灯开着?输入 ...

  6. uva 11174 Stand in a Line

    // uva 11174 Stand in a Line // // 题目大意: // // 村子有n个村民,有多少种方法,使村民排成一条线 // 使得没有人站在他父亲的前面. // // 解题思路: ...

  7. 在已有 Xcode 项目中 加入Cordova框架

    转自:http://www.jianshu.com/p/656838ae92bc 我们知道,在UIKit中的UIWebView虽然已经提供了很多功能了,比如JavaScript和Objc之间的通信.但 ...

  8. Android--网络请求

    1.Android 上发送HTTP 请求的方式一般有两种,HttpURLConnection 和 HttpClient: 2.HttpURLConnection 的用法: 1)获取 HttpURLCo ...

  9. 解决Ubuntu发热量大的问题

    转自:http://blog.csdn.net/tracker_w/article/details/8801971 用Ubuntu 的朋友应该都有体会,开机不久风扇就开始狂转,本本也会很热.据说是双显 ...

  10. Sprint评分表

    组名:第七班                                             姓名:王炳午 1.Cs 小分队: 项目: 游戏与办公的集合一些小的程序的整合有2048,倒计时,记 ...