On MAC m1, I runned very basic webapi that just responses "OK".
It works as expected of course, but it doesn't work if the concurrent connections were over (around)200.
$ dotnet new webapi
# add a simple Controller that responses just "OK" string.
$ curl http://localhost:5000/dummy
OK
# run ab(Apache Benchmark) with 10 concurrent connections:
$ ab -c 10 -s 5 -t 20 http://localhost:5000/dummy
# WORKS JUST FINE
# run ab with 200 concurrent connections:
$ ab -c 200 -s 5 -t 20 http://localhost:5000/dummy
...
apr_socket_recv: Connection refused (61)
# or,
apr_socket_recv: Connection reset by peer (54)
I confirmed that maxFiles setting on the machine is large enough:
launchctl limit maxfiles
maxfiles 655360 1048576
And it's able to test to other external end-point as well.
Is there any hidden limitations in Kestrel? or .NET on MAC m1?
edit: I logged at Trace level, but the .NET app itself is working well. There wasn't any errors.