.NET Core 3.1 Kestrel/Apache 停止响应请求

.NET Core 3.1 Kestrel/Apache stop responding requests

我是 运行 Ubuntu 20.04.1 LTS 中 Apache 2.4.41 反向代理后面的 .NET Core 3.1 应用程序。

这个应用程序 运行 几个月没有任何问题,然后我将 SignalR 添加到项目中,只是为了查看连接的客户端,在 SignalR 之后,Kestrel/Apache 在几个小时后随机停止响应请求开始后。

我不知道如何追踪问题,没有异常,memory/CPU 用法没有什么奇怪的。

我的问题比我想象的要简单,只需要增加 /etc/apache2/mods-available/mpm_event.conf 中的 MaxRequestWorkers,因为 SignalR 主要使用 WebSocket 连接,只要它处于连接状态,它就会使请求工作者保持忙碌。

另一种可能的解决方案是更改客户端中的 HttpTransportType 并强制使用另一种类型,例如 ServerSentEvents,但它还有其他对应类型。