WindowsServer2003R2、IIS6下非常让人郁闷的ASP.NET MVC
2013-05-14 11:03
399 查看
WindowsServer2003R2、IIS6下非常让人郁闷的ASP.NET MVC在大用户量下Session会乱串的无法正确读取数据,导致系统无法正常使用
在MVC框架下写了非常简单的代码,如下<span>欢迎您, @Session["RealName"].ToString() [ @Session["Code"].ToString() ]</span>在用户数量不多时一切都运行正常,在个人电脑上调试也没问题,但是部署到服务器上,访问的用户数量非常庞大后,发现Session会乱的现象,我们也调试了程序的每个环节,没能发现什么大问题,甚至把静态方法都进行了改造,而且,只有登录时会写入Session,其他时候都只是读取Session。
最让人郁闷的是程序在还没超时的情况下Session就会开始乱起来,例如命名是A用户登录的,多刷新几次后会变成B用户,再多刷新几次后又能变成A用户,出现了一些不可预知的错误。
系统里大概有4000多个账户,每个账户大概有20-30个人在使用,在测试环境下,用户访问数量还少时一切正常,但是大概有1万个用户同时使用系统时就会出现Session乱套的情况。
最要命的是,读取Session是微软提供的方法,不知道问题出在哪里,下午调试了一下午还没能发现问题的根源,这个系统全国有上万人在随时输入数据,而且已经输入了100多万条数据,接下来还会输入蛮长一段时间。
这么用户变来变去可不是儿戏,MVC的Session读取的方法难道连1万个用户的压力也顶不住?下面抓几个系统相关的参考图片。
系统的硬件配置大体情况如下
系统在没几个用户时的CPU使用情况如下
在测试环境下几个不同的用户登录都不会出现这样的情况,运行情况一切良好,但是用户数量庞大了后,就发生了无法正确读取当前Session的天地错误来了。
居然不同的用户访问,居然能生成相同的 SessionId,真是活见鬼了,而且几个用户之间乱串。
kpldnxjnbmxrrh0edzy231l0dvun2gonrxkv5cqd4x2qp5cl0jqebcl5mv3fpstcbulp3map
34wziqicsez3clogagqolnpu 还是由于缓存倒是的错误,[OutputCache(Duration = 0, VaryByParam = "*")] 才对,但是我的搭档写了[OutputCache(Duration = 1, VaryByParam = "*")]
这里的1导致了缓存错误引起了上面的问题。
相关文章推荐
- WindowsServer2003R2、IIS6下非常让人郁闷的ASP.NET MVC在大用户量下Session会乱串的无法正确读取数据,导致系统无法正常使用
- 在IIS6中部署ASP.NET MVC程序
- 将ASP.NET MVC 2.0 部署在IIS6
- IIS6下部署ASP.NET MVC应用程序
- iis6配置asp.net mvc程序设置图解
- ASP.NET MVC在IIS6下部署的小技巧
- Asp.net MVC DropDownLists 几篇非常好的博文
- 使用Installshield2009 在IIS6部署Asp.net mvc 应用程序
- 将ASP.NET MVC 2.0 部署在IIS6和IIS7上的教程
- iis6 部署 asp.net mvc 网站
- IIS7.5(经典/集成),IIS6,asp.net 4.0下配置Url映射(asp.net mvc)
- IIS7.5(经典/集成),IIS6,asp.net 4.0下配置Url映射(asp.net mvc)
- 将ASP.NET MVC 2.0 部署在IIS6和IIS7上的教程
- ASP.NET MVC在IIS6下部署的小技巧
- IIS7.5(经典/集成),IIS6,asp.net 4.0下配置Url映射(asp.net mvc)
- ASP.NET WebForm 之 Ajax 请求后端处理 概述 ASP.NET 在MVC中的用途非常广泛,操作起来也非常简单。前台请求异步请求 Controlle
- 在IIS6中配置asp.net MVC网站时HTTP 错误 500.21 - Internal Server Error解决方案
- 将ASP.NET MVC 部署在IIS6上
- 在IIS6和IIS7上部署ASP.NET MVC 2.0
- 一个非常简单的 ASP.NET MVC 示例:长轮询(又叫:反向 AJAX,英文名:Comet)实现