dotnet-architecture / HealthChecks

Experimental Health Checks for building services, such as with ASP.NET Core
Other
453 stars 124 forks source link

UrlChecker can exhaust sockets #62

Open synercoder opened 7 years ago

synercoder commented 7 years ago

In the current implementation of the UrlChecker for every check a new HttpClient is created. This can cause problems.

On MSDN it is stated under the remarks section:

HttpClient is intended to be instantiated once and re-used throughout the life of an application. Instantiating an HttpClient class for every request will exhaust the number of sockets available under heavy loads. This will result in SocketException errors.

Also more information about this issue can be found here: https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/

I will try to create a minimal verifiable test project to demonstrate the problem soon, as well as perhaps a pull request to fix it. I am currently at work and don't have the time to do that now.