У меня есть приложение. Net Core 3.1. В приложении я использую IHttpClientFactory для создания HttpClient. Когда я звоню с помощью SendAsyn c, первый запрос занимает более 2 секунд, тогда как последующие запросы занимают менее 100 мс. Это неприемлемая производительность для производственного приложения.
Я также заметил, что это происходит, если я какое-то время не делаю никаких запросов. Я наткнулся на свойство PooledConnectionIdleTimeout, которое по умолчанию составляет 2 минуты, и я могу продлить это время, но это будет работать только для уже существующих объединенных соединений, а не при необходимости создания нового. Я настраиваю HttpClient в моем Startup.cs как таковой:
services.AddHttpClient("HttpClient",
h =>
{
h.BaseAddress = new Uri(Configuration["PythonUrl"]);
});
Используйте HttpClient следующим образом:
var client = httpClientFactory.CreateClient("HttpClient");
var res = await client.GetAsync(nameof(Accounts).ToLower() + "/" + id.ToString() + "/");
, когда "Configuration [" PythonUrl "]" содержит P C имя, например:
{
"AllowedHosts": "*",
"PythonUrl": "http://PC202003261059:8000/",
"url": "http://*:5000"
}
Первый запрос HttpClient стал очень медленным. Может ли кто-нибудь оказать мне услугу? Сначала спасибо.