Когда .NET Core использует httpclient для реализации HTTP-запросов, происходит сбой после получения более 20 запросов. МC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Когда .NET Core использует httpclient для реализации HTTP-запросов, происходит сбой после получения более 20 запросов. М

Сообщение Anonymous »

Я использую HttpClient для реализации HTTP-запросов в .NET Core. Как показано в следующем коде, при использовании внедрения зависимостей программа аварийно завершает работу, как только одновременно выполняется 20 или 50 запросов.

Код: Выделить всё

MyHttpService:
namespace WebApplication1.UComon
{
public class MyHttpService
{
private readonly HttpClient _httpClient;

public MyHttpService(HttpClient httpClient)
{
_httpClient = httpClient;
}

public async Task GetExternalData(string url)
{
var response = await _httpClient.GetAsync(url);

if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync();
}
else
{
return null;
}
}
}
}

Код: Выделить всё

TestController:
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WebApplication1.UComon;

namespace WebApplication1.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase
{
private readonly MyHttpService _httpService;

public TestController(MyHttpService httpService)
{
_httpService = httpService;
}

#region 测试httpclient
[HttpGet, Route("PostHttp")]
public IActionResult PostHttp()
{
string responseBody = "";
//var service = new HttpService();
//string getResponse = service.GetAsync("https://www.baidu.com/").Result;
responseBody = _httpService.GetExternalData("https://www.baidu.com/").Result;
return Ok(responseBody);
}
#endregion
}
}
Используя инструмент JMeter для стресс-тестирования, было обнаружено, что сбои происходят при параллельности 50.

Подробнее здесь: https://stackoverflow.com/questions/790 ... after-rece
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»