我们不时遇到一个问题,我们在IIS中有许多具有以下状态的请求:RequestAcquireState
。
我们正在使用SqlSessionStateStore
来管理会话。当我们在这种状态下有很多请求时,他们最终会超时并离开。有时他们在那里待了一个多小时。
当我们有这些挂起的会话时,我看到的是ASPState数据库中存储过程TempGetStateItemExclusive3
的执行增加。每隔几秒就会达到2,000次。不好。
我希望有人可以帮我解决以下问题:
这些会话如何挂起
除了增加的数据库活动
是否可以安全地终止个别请求
很多人建议重新启动AppPool,这对目前使用该系统的人不利
有没有办法在ASPState数据库中识别这些会话,如果删除它们会发生什么
答案 0 :(得分:0)
挂起是由于底层框架未触发EndRequest引起的,如本KB article中所述。
您还没有包含正在运行的IIS / .NET版本,因此本文中的HotFix可能适用于您。
不幸的是,这似乎没有在.NET的更高版本中得到正确修复,我仍然遇到了同样的问题,我也asked about。