断开的连接不会超时

本文关键字:超时 连接 断开 | 更新日期: 2023-09-27 18:35:25

我们有一个基本的ASP Web API设置:一个ApiController,其中有许多方法配置为POST请求的端点。它们接收相当大的 JSON 流,这些流通过 [FromBody] 属性反序列化。

发生的情况是,如果连接中断/终止,请求将保留在 IIS 工作进程请求队列中。它们似乎不会超时。更糟糕的是,由于RequestHandler中的某些内容保持忙碌,在多次失败和"卡住"请求之后,CPU 消耗接近 100%。日志记录指示ApiController中的操作方法尚未执行。

长话短说。我能做些什么来让这些方法超时,以便将它们从队列中删除?正常的web.config似乎不起作用。

断开的连接不会超时

在大多数情况下编译调试=true是问题所在。以下是关于类似问题的更多讨论。如果这也无济于事...当 CPU 消耗接近 100% 时,对 W3WP 进程进行内存转储,并使用 Windows 调试工具进行转储分析。

可以配置应用程序池的"回收"设置。在 IIS 的此设置中,可以使用计划、请求编号或特定 MB 限制回收应用程序池。