.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
,但它还有其他对应类型。
我是 运行 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
,但它还有其他对应类型。