使用内部的异步服务调试异步控制器

时间:2018-10-25 09:25:59

标签: c# asp.net-mvc asynchronous async-await task

这是MVC项目。我已经开始对远程api异步进行大量调用,但是我在调​​试该代码时遇到了问题,因为它在等待后没有进入断点。我仍在学习异步/等待。前端的ajax请求中使用的GetSearchResults方法。应用程序托管在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);

有人可以告诉我如何在这里实现调试吗?另外,如果我很好地使用了异步/等待功能,那么有人可以进行快速代码审查吗?另外也许我应该使用Task.Run()?更深入的了解确实越来越令人困惑。

谢谢!

1 个答案:

答案 0 :(得分:0)

问题是我的方法中未处理的异常。谢谢@bommelding