C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■103736 / 1階層)  HttpClientにおいて、エラー発生
□投稿者/ WebSurfer (2957回)-(2025/06/19(Thu) 09:57:29)
No103735 (kiku さん) に返信

ハズレの可能性が高そうですが、エラーメッセージの、

> リモート名を解決できませんでした。: '●●'

から想像を膨らませて、名前解決の問題 ⇒ DNS の問題かもしれないということで
レスします。

Windows 10 では問題なく Windows 11 で問題が出るとか、短い期間で一日に数回
程度しか HttpClient は使わないであろう Windows Forms アプリで DNS の問題が
出るというのは考えにくいので、ハズレの可能性が高そうですが、ご参考まで。


HttpClient のインスタンスを生成すると、そのたびにソケットも生成されます。し
かし、HttpClient のインスタンスを Dispose してもソケットはクローズされない
ので、何度も繰り返すとソケットの枯渇につながるという問題がある・・・という
のはすでにご存じだと思います。

なので、それを避けるため、HttpClient のインスタンスはシングルトンにしてア
プリで使いまわすということを行っているのでないかと想像しています。

ただし、そうすると socket の枯渇の問題は解決できても、DNS の変更が反映され
ないという別の問題があるそうです。

ASP.NET など長時間実行されるプロセスで HttpClient の共有インスタンスを使用
する場合に、socket の枯渇と DNS の問題に対応するために、IHttpClientFactory
を使用するという方法があります。

IHttpClientFactory を使用して回復性のある HTTP 要求を実装する
https://learn.microsoft.com/ja-jp/dotnet/architecture/microservices/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests

Windows Forms アプリで DI を使って IHttpClientFactory を inject して使う
サンプルは以下の記事にありますので、興味があれば見てください。

Windows Forms で IHttpClientFactory 利用 (CORE)
https://surferonwww.info/blogengine/post/2021/03/12/how-to-use-ihttpclientfactory-in-windows-forms-application.aspx

上のサンプルのターゲットフレームワークは .NET 5.0 ですが、DI に使われて
いる Microsoft.Extensions.DependencyInjection 名前空間にあるクラス類は
.NET Framework でもバージョン 4.6.1 以降であれば利用できます。実装例は
以下の記事を見てください。

.NET Framework での Dependency Injection
https://surferonwww.info/blogengine/post/2023/04/13/dependency-injection-for-dotnet-framework-48-applicationaspx.aspx
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←HttpClientにおいて、エラー発生 /kiku →Re[2]: HttpClientにおいて、エラー発生 /kiku
 
上記関連ツリー

HttpClientにおいて、エラー発生 / kiku (25/06/18(Wed) 19:13) #103735
Re[1]: HttpClientにおいて、エラー発生 / kiku (25/06/19(Thu) 10:00) #103737 解決済み
│└ Re[2]: HttpClientにおいて、エラー発生 / KOZ (25/06/24(Tue) 01:09) #103741 解決済み
HttpClientにおいて、エラー発生 / WebSurfer (25/06/19(Thu) 09:57) #103736 ←Now
  └ Re[2]: HttpClientにおいて、エラー発生 / kiku (25/06/19(Thu) 10:06) #103738
    └ Re[3]: HttpClientにおいて、エラー発生 / kiku (25/06/20(Fri) 18:23) #103740 解決済み
      └ Re[4]: HttpClientにおいて、エラー発生 / kiku (25/09/18(Thu) 14:50) #103859 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信