C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
掲示板トップ
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
解決済み
上記ツリーを一括表示
/
上記ツリーをトピック表示
上記の記事へ返信
入力内容にタグは利用できません。
他人を中傷する記事は管理者の判断で予告無く削除されます。
半角カナは使用しないでください。文字化けの原因になります。
名前、コメントは必須記入項目です。記入漏れはエラーになります。
入力内容の一部は、次回投稿時の手間を省くためブラウザに記録されます。
URL は自動的にリンクされます。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
名前
(*必須)
E-Mail (任意)
Web サイト (任意)
投稿モード
通常モード
図表モード (ソースコードを貼る場合はこちらを使用)
本文
(質問の場合は、開発環境・使用言語のバージョンなどを最初に書いてください)
■No103736 (WebSurfer さん) に返信 > ■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
編集キー
自分の投稿を編集する時に必要です
(半角8文字以内)
解決済み
/
解決したらチェックしておきましょう。
プレビュー/
管理者用
-
Child Tree
-