OperationCanceledException при вызове проекта API из веб-проекта - PullRequest
0 голосов
/ 17 февраля 2019

У меня странная ситуация, с которой я сталкиваюсь с моим решением VS.У меня есть два веб-проекта .NET Core, один - MVC Web, а другой - веб-API.

У меня настроено решение для одновременного запуска обоих проектов, чтобы веб-проект (на порту 5002) мог выполнятьвызовы проекта API (на порту 5001).

Метод вызова моего проекта API довольно прост:

public async Task<IEnumerable<Category>> GetCategories()
{
    var apiUri = "http://localhost:5001/api/categories";

    HttpClient client = new HttpClient();
    var requestMessage = new HttpRequestMessage(HttpMethod.Get, apiUri);
    var responseMessage = await client.SendAsync(requestMessage); // fails here

    ...
}

При вызове SendAsync он зависнет на несколько минути затем в конечном итоге выдает OperationCanceledException, говоря The operation was canceled с трассировкой стека

OperationCanceledException: операция была отменена.

System.Net.Http.HttpClient.HandleFinishSendAsyncError (Исключение e,CancellationTokenSource cts)

System.Net.Http.HttpClient.FinishSendAsyncBuffered (Задача sendTask, запрос HttpRequestMessage, CancellationTokenSource cts, bool disposeCts)

Сервисная категория.Службы категории (категория обслуживания)..cs

var responseMessage = await client.SendAsync (requestMessage);

Странно то, что я могу перейти к SwagGer на моем API и конечные точки работают нормально.Кроме того, если я выполняю GET-запрос в Postman с той же конечной точкой API, он работает нормально.

Есть ли что-то, что я здесь делаю неправильно?Я подозреваю, что это может быть проблема с моей локальной установкой Visual Studio для моего проекта - это работало нормально на другом компьютере, но сегодня я перенес это на другой компьютер, и вдруг я не могу звонить в мой проект API.


Я также только что попытался создать пустое консольное приложение для вызова моего проекта API с похожими результатами, на этот раз я получил исключение TaskCanceledException.Но опять же, использование Swagger или Postman с моим проектом API работает просто отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...