Я использую Masstransit Requst Response в ядре asp.net, когда я отправляю запрос до того, как получаю запрос на ответ Отмена и выдача исключения - PullRequest
0 голосов
/ 31 января 2019

Я использую Masstransit Запрос-ответ в Asp.NetCore Когда я отправляю Запрос до получения ответа, запрос получает Отменено и выбрасывание этого исключения

System.Threading.Tasks.TaskCanceledException: A task was canceled.

Я скачал masstransit кодов и отлаживал свой проект с его помощью.Я понимаю, что ClientRequestHandle распоряжается и отменяет запросы до получения моего ответа.

Я проверил Потребительскую сторону, и она успешно работает и отправляет Ответ, как и ожидалось.

1 Ответ

0 голосов
/ 03 февраля 2019

При использовании RequestHandle<T> необходимо сохранять ссылку на дескриптор до тех пор, пока запрос не будет завершен и ответ не будет получен (или произойдет тайм-аут или ошибка).

Вы можете упростить это, используяоднострочный метод:

var response = await requestClient.GetResponse<T>(request);

Если вам нужно добавить в запрос что-то, например, заголовки и т. д., то вам нужно держать его в руках, пока он не будет завершен.

using(var handle = requestClient.Create(request))
{
    var response = await handle.GetResponse<T>();
}
...