【发布时间】:2013-05-10 08:49:28
【问题描述】:
有时,我网站上的一些请求开始挂在 Session 模块的 RequestAcquireState 状态。当螺旋开始时,所有请求都超时,我们需要在受影响的服务器上重新启动 IIS。
我对此进行了很多调查,得到的唯一结论是,当应用程序尝试访问存储在 Session 中的用户数据时,不知何故发生了死锁。
我能想到的解决此问题的唯一选择是减少或停止在我的应用程序中使用会话。这绝对是计划的一部分,但我们还需要一段时间才能完成。
我们使用 IIS 7.5 运行 6 台机器,在我们的负载平衡中运行状态服务器和服务器关联。
有关如何解决此问题或完全修复它而无需完全删除会话的任何提示?
【问题讨论】:
-
我的 asp.net web forms 4.0 应用程序和 iis 7.5 有同样的问题...有什么建议吗?
-
在任何情况下,某些页面是否做了很多工作,例如,某些过程,或大文件的下载/上传?
-
不,大部分页面都是只读的。这是一个电子商务应用程序。当问题没有发生时,所有页面的平均响应时间在 70 到 80 毫秒之间。
-
您是否考虑过切换到 SQL Server 状态模式?您还可以消除负载平衡器中的服务器关联性,并防止用户会话因服务器崩溃而中断。
-
我要检查的另一件事是失败时会话状态的膨胀程度。登陆服务器查看任务管理器,发现aspnet_state.exe,是不是很占内存,泡CPU等等?
标签: asp.net timeout iis-7.5 httprequest session-state