Оригинальное исключение, не показанное в асинхронном вызове методаC#

Место общения программистов C#
Ответить
Anonymous
 Оригинальное исключение, не показанное в асинхронном вызове метода

Сообщение Anonymous »

Я работаю над приложением C# и имею метод, который выполняет асинхронный HTTP -вызов через пользовательский пакет Nuget, который я построил сам. Вот рассматриваемый код: < /p>

Код: Выделить всё

using MyClientApp;

public async Task MyAsyncTask()
{
try
{
await _myClient.SendServiceRequestAsync();
}
catch (Exception ex)
{
var test = ex.Message;
}
}
< /code>
_myClient
является частью пакета Nuget, который я поддерживаю, и SendServiceRequestAsync () Внутренне отправляет HTTP -запрос в локальную службу, работающую в Docker.

Код: Выделить всё

SendServiceRequestAsync()
в client делает следующее:

Код: Выделить всё

private async Task SendServiceRequestAsync()
{
using HttpClient client = new();

client.BaseAddress = new Uri("http://localhost:8087");

return await client.GetAsync(_requestUri);
}
< /code>
To test exception handling, I intentionally did [b]not[/b] start the Docker service that runs on localhost:8087
, что должно привести к ошибке соединения. Как и ожидалось, запрос не удается, но вот где он сбивает с толку: < /p>

ex.message < /code> в блоке улова:

Ошибка произошла при отправке запроса. is:

Невозможно подключиться к удаленному серверу < /p>
< /blockquote>
< /li>
< /ul>
Однако, отладки поведение клиента. быть сделанным, потому что целевая машина активно отказалась от него. (Localhost: 8087) < /p>
< /blockquote>

Код: Выделить всё

SendServiceRequestAsync()
делает не или подавить исключения. Он просто ожидает httpclient.getasync () call.
Почему я вижу только общее сообщение, что возникла ошибка ... in ex.message , и не более конкретное, как не может быть связано с подключением ... ? отладка?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ethod-call
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»