我们有时会遇到一个问题,即我们在 IIS 中有许多具有以下状态的请求:RequestAcquireState
。
我们正在使用 SqlSessionStateStore
来管理 session 。当我们在这种状态下有很多请求时,它们最终会超时并消失。有时他们会在那里待一个多小时。
当我们有这些挂起的 session 时,我确实看到了 ASPState 数据库中存储过程 TempGetStateItemExclusive3
的执行增加。每隔几秒高达 2,000。不好。
我希望有人能帮我解决以下问题:
这些 session 是如何挂起的
除了增加数据库事件之外,它们是否会造成任何伤害
是否可以安全地终止单个请求
很多人建议重启 AppPool,这对当前使用该系统的人不利
有没有办法在 ASPState 数据库中识别这些 session ,如果删除它们会发生什么
最佳答案
挂起是由底层框架未触发 EndRequest 引起的,如本 KB article 中所述.
您没有包括您正在运行的 IIS/.NET 版本,因此本文中的 HotFix 可能适用于您。
不幸的是,这似乎没有在更高版本的 .NET 中得到正确修复,我仍然遇到同样的问题,我也遇到了同样的问题 asked about .
关于iis - 挂 IIS 请求 RequestAcquireState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36689096/