Отладка асинхронного контроллера с помощью асинхронной службы внутри - PullRequest
0 голосов
/ 25 октября 2018

Это проект MVC.Я начал делать тяжелые вызовы для удаленного асинхронного API, но у меня проблемы с отладкой этого кода, потому что он не вводит точку останова после ожидания.Я все еще учусь 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 ()?Идти глубже становится все более запутанным.

Спасибо!

1 Ответ

0 голосов
/ 12 ноября 2018

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

...