IHttpClientFactory は HttpClient の寿命・ハンドラ再利用を枠組みで管理する仕組み。都度 new によるソケット枯渇を避けつつ、名前付きクライアントで Timeout などを揃える。
AddHttpClient → 注入して使うのが基本CancellationToken も併用builder.Services.AddHttpClient("orders", c =>
{
c.BaseAddress = new Uri("https://api.example.com/");
c.Timeout = TimeSpan.FromSeconds(15);
});
// 利用側
var http = _factory.CreateClient("orders");
using var res = await http.GetAsync("v1/items", ct);
HttpClient.Timeout はリクエスト全体の上限TaskCanceledException になりやすいSocketException が付くことが多いnew HttpClient() が残っているTimeout.InfiniteTimeSpan)にして放置関連: HttpClient タイムアウト / ソケット枯渇