HttpClientFactory内存泄漏

时间:2018-10-14 14:14:01

标签: memory memory-leaks httpclientfactory

在我的c#控制台应用程序(.net 4.6.1)中,要求对随机端点进行API调用(获取/发布/放置/删除)等。网址,有效负载等的详细信息来自数据库表。控制台应用程序获取httpClientFactory实例,如下所示

var serviceProvider = new ServiceCollection().AddHttpClient().BuildServiceProvider();
var httpClientFactory = serviceProvider.GetService<IHttpClientFactory>();

对于从表中获得的每条记录,我都会调用一个方法来进行API调用。我将httpClientFactory传递给该方法。在这种方法中,我将如下创建并使用HttpClient。

var httpClient = httpClientFactory.CreateClient();
//set headers
//make api call, for ex  var response = await httpClient.PutAsync(apiTask.URL, content);
//Return resposne

我不在处置httpClient的地方。当我看到内存使用率时,它一直在增加,即使数小时后我也看不到它会下降。

我关注了以下文章 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/http-requests?view=aspnetcore-2.1

我使用它对吗?我应该使用“ using(httpClient)”

1 个答案:

答案 0 :(得分:0)

由于每个请求HttpClient被设计为可重用且线程安全的,因此无需为每个请求实例化新的HttpClient,您可以在所有请求之间使用一个实例。

选中thisthisthis,看看this