asp.net - 在 IIS 7.5 上的 session 模块上挂起的请求

标签 asp.net timeout iis-7.5 httprequest session-state

有时,我网站上的一些请求开始卡在 Session 模块的 RequestAcquireState 状态。当螺旋开始时,所有请求都超时,我们需要在受影响的服务器上重新启动 IIS。

我对它进行了很多调查,我得到的唯一结论是,当应用程序尝试访问存储在 Session 中的用户数据时,不知何故发生了死锁。

我能想到的解决此问题的唯一选择是减少或停止在我的应用程序中使用 session 。这绝对是计划的一部分,但我们需要一段时间才能完成。

我们在负载平衡中运行 6 台具有 IIS 7.5 的机器,超出 proc StateServer 和服务器关联。

关于如何解决此问题或根本无需完全删除 session 的任何提示?

IIS Hanging Processes

最佳答案

提供者和 session 模块(IIS session 模块)上都存在锁定机制。您可以开发自定义 session 模块,但您仍然需要没有锁定的提供程序,或者您可以开发没有锁定的自定义提供程序,但您仍然需要 IIS session 模块,并且在该级别实现并不那么简单。

解决方案是UnlockedStateProvider [又名解锁]

跟随白兔:P(查看演示项目,它解释了一切。)

关于asp.net - 在 IIS 7.5 上的 session 模块上挂起的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16570855/

相关文章:

asp.net - 有没有办法使用 ASP.NET Identity 授权服务堆栈?

c# - 为什么事件的访问修饰符默认是 protected ?

command-line - JUnit 从命令行设置超时

jquery - JQUERY的这一行是什么意思?

asp.net - 如何在不重新启动应用程序的情况下清除网站的输出缓存

c# - 通过超时取消 C# 4.5 TcpClient ReadAsync

Tomcat 在重负载时失败

asp.net - 作为现有 asp.net 站点的应用程序运行时,iisnode 错误 500

asp.net - 无法在 Web 服务器上开始调试。无法连接到网络服务器

asp-classic - 经典的 asp include virtual with backslash 在 IIS7.5 上不起作用(与斜杠一起工作)