私は.NET 4.6.1 WebApiプロジェクトを作成しています。このプロジェクトの一環として、別のWebApiを呼び出す必要があり、そのためにHttpClientを使用したいと思います。HttpClientを使用してWebAPI内で呼び出しを行う
私の研究のオンラインからは、ガベージコレクションが正しく行われずメモリリークにつながる可能性があるため、using句内で通常のHttpClientを実行するだけでは対応できません。
例:次のように私は現在、それを使用しています:
using (HttpClient client = new HttpClient { Timeout = TimeSpan.FromSeconds(CONTENTFUL_TIMEOUT_IN_SECONDS) })
{
responseText = await client.GetStringAsync(uri).ConfigureAwait(continueOnCapturedContext:false);
}
しかし、メモリリークにStackOverflowのと他人からの他の記事このリードで提案し、これを回避する方法は、HttpClientを単一のインスタンスを共有することであるとして。例えば、
など。 https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/ HttpClientHandler/HttpClient Memory Leak
しかし私は、どのようにセットアップWebAPIの自体の内部からのHttpClientの共有「シングル」のインスタンスをするかわかりませんか?