C # Не удается отладить асинхронный метод на контроллере API - PullRequest
0 голосов
/ 24 октября 2018

У меня есть метод на ApiController, который я пытаюсь отладить.Этот метод выполняет вызов внешнего API с помощью SendAsync.Как только я сделаю этот вызов, отладка заканчивается.У меня была похожая проблема в прошлом при использовании консольного приложения.Я смог решить это с помощью wait ().Поправьте меня, если я ошибаюсь, но я не верю, что вы хотите сделать это в веб-приложении.

        var msg = new HttpRequestMessage(HttpMethod.Post, url);
        var login = new LoginModel() { username = "test", password = "test" }; 

        msg.Content = new ObjectContent<LoginModel>(login, new JsonMediaTypeFormatter(), (MediaTypeHeaderValue)null);

        //Debugger exits after calling this line.
        var result = await WebApiApplication.HttpClientInstance.SendAsync(msg); 

        //Debugger never gets here. 
        if (result.IsSuccessStatusCode)
        {
            var response = await result.Content.ReadAsStringAsync(); 
        }

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

1 Ответ

0 голосов
/ 24 октября 2018

Может быть, попытаться поймать блок, чтобы увидеть, что происходит?

        var msg = new HttpRequestMessage(HttpMethod.Post, url);
        var login = new LoginModel() { username = "test", password = "test" }; 

        msg.Content = new ObjectContent<LoginModel>(login, new JsonMediaTypeFormatter(), (MediaTypeHeaderValue)null);

        try 
        {
            //Debugger exits after calling this line.
            var result = await WebApiApplication.HttpClientInstance.SendAsync(msg); 

             //Debugger never gets here. 
             if (result.IsSuccessStatusCode)
             {
                var response = await result.Content.ReadAsStringAsync(); 
             }
        }
        catch (Exception ex)
        {
            // do something with the ex.Message;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...