Отладка асинхронного контроллера с помощью асинхронной службы внутри

Это проект MVC. Я начал делать несколько тяжелых вызовов удаленному api async, но у меня возникают проблемы с отладкой этого кода, потому что он не входит в точку останова после ожидания. Я все еще изучаю async / await. Метод GetSearchResults используется в запросах ajax на веб-интерфейсе. Приложение размещено в IIS.

Вот мой контроллер:

[HttpGet]
public async Task<ActionResult> GetSearchResults(SearchRequest searchModel)
{           
    var result = await _apiSearchService.SearchAsync(searchModel);
    return Json(result, JsonRequestBehavior.AllowGet);
}

А вот и мой метод внутри службы:

public async Task<Search> SearchAsync(SearchRequest searchRequest)
{
    var requestUrl = "api/search";
    var request = new NewtonsoftRestRequest(requestUrl, Method.GET);

    /*
        ...assigning params
    */

    var response = await _apiClient.ExecuteTaskAsync(request);
    var searchResults = _apiClient.ResolveResponse<Search>(response);
    return searchResults;
}

Когда я попал в линию

await _apiSearchService.SearchAsync(searchModel);

Я ввожу SearchAsync метод, а после строки с ExecuteTaskAsync я вообще выхожу из отладки и получаю свою страницу.

var response = await _apiClient.ExecuteTaskAsync(request);

Может ли кто-нибудь сказать мне, как здесь можно добиться отладки? Кроме того, может ли кто-нибудь провести быструю проверку кода, если я хорошо использую async / await? Также, может быть, мне стоит использовать Task.Run ()? Погружение вглубь действительно сбивает с толку.

Спасибо!


person trinny    schedule 25.10.2018    source источник
comment
Может быть исключение в ExecuteTaskAsync (). Добавление попытки / улова на каком-то уровне даст вам гораздо больше информации.   -  person bommelding    schedule 25.10.2018
comment
Так же, как и при многопоточной отладке, обратитесь к c-sharpcorner.com/UploadFile/736ca4/   -  person Gaurav Moolani    schedule 25.10.2018


Ответы (1)


Проблема заключалась в необработанном исключении в моем методе. Спасибо @bommelding

person trinny    schedule 12.11.2018