У меня есть конечная точка API для вызова внешнего API в виде запроса POST.
- При запуске приложения с помощью Dotnet Run в расположении приложения мы получаем ответ API в течение 2 секунд.
[img]https://i.stack.imgur. com/PEyRK.png[/img] - При запуске приложения как сервиса мы получаем ответ ~18 секунд
< img alt="введите здесь описание изображения" src="
" />
[HttpGet]
[AllowAnonymous]
[Route("TestCall")]
public async Task TestCall()
{
var dict = new Dictionary();
dict.Add("username", "admin");
dict.Add("password", "P@55w0rd");
dict.Add("grant_type", "password");
var httpClientHandler = new HttpClientHandler();
// httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, sslPolicyErrors) =>
// {
// return true;
// };
httpClientHandler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
httpClientHandler.CheckCertificateRevocationList = false;
using var client = new HttpClient(httpClientHandler);
using var req = new HttpRequestMessage(HttpMethod.Post, "https://thirdpartyapi.com/token") { Content = new FormUrlEncodedContent(dict) };
Log.Information("Before Api Call"+DateTime.Now);
var res =await client.SendAsync(req).ConfigureAwait(false);
Log.Information("End Api Call"+DateTime.Now);
return Ok(res.Content.ReadAsStringAsync().Result);
}
Сервис
[Unit]
Description=Crystal App
[Service]
WorkingDirectory=/application/crystal
ExecStart=/usr/bin/dotnet /application/crystal/Crystal.API.dll --urls "http://localhost:5000"
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=Crystal
User=www-data
Environment=HTTP_PROXY=
Environment=ASPNETCORE_ENVIRONMENT=Production
Подробнее здесь: https://stackoverflow.com/questions/783 ... md-service
Мобильная версия