有时,我网站上的一些请求开始卡在 Session 模块的 RequestAcquireState 状态。当螺旋开始时,所有请求都超时,我们需要在受影响的服务器上重新启动 IIS。
我对它进行了很多调查,我得到的唯一结论是,当应用程序尝试访问存储在 Session 中的用户数据时,不知何故发生了死锁。
我能想到的解决此问题的唯一选择是减少或停止在我的应用程序中使用 session 。这绝对是计划的一部分,但我们需要一段时间才能完成。
我们在负载平衡中运行 6 台具有 IIS 7.5 的机器,超出 proc StateServer 和服务器关联。
关于如何解决此问题或根本无需完全删除 session 的任何提示?
最佳答案
提供者和 session 模块(IIS session 模块)上都存在锁定机制。您可以开发自定义 session 模块,但您仍然需要没有锁定的提供程序,或者您可以开发没有锁定的自定义提供程序,但您仍然需要 IIS session 模块,并且在该级别实现并不那么简单。
解决方案是UnlockedStateProvider [又名解锁]
跟随白兔:P(查看演示项目,它解释了一切。)
关于asp.net - 在 IIS 7.5 上的 session 模块上挂起的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16570855/