У меня есть сервер. Net Core 3.1, опубликованный на Azure веб-сайтах. Как часть этого сервера, он имеет конечную точку API, которую мне нужно вызвать с другим приложением. Контроллер для этой конечной точки делает пару вещей, но принципиально он вызывает другую внешнюю конечную точку API, используя HttpClient
.
Я не думаю проблема в любом коде, но для справки, вот как выглядит HTTP-запрос от сервера к внешнему API:
try
{
string endpoint = baseAdress + cpe;
string responseBody = await client.GetStringAsync(endpoint);
// ... It fails at the line above, the rest of this just parses the response body
}
catch (HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ", e.Message);
// "Response status code does not indicate success: 502 (Bad Gateway)."
}
Когда я запускаю этот сервер локально и настраиваю свое клиентское приложение для вызова конечной точки на стороне сервера на localhost, все работает гладко Контроллер работает, вызывает этот внешний API, получает результаты, а затем выполняет некоторый анализ и возвращает ответ на мое клиентское приложение.
Когда я публикую sh сервер до Azure и получаю на стороне клиента, чтобы указать там свой вызов API, проблем нет. Однако попытка сервера вызвать внешний API приводит к ошибке 502.
Блокирует ли Azure серверы от вызова внешних конечных точек? Или мне не хватает некоторых настроек, которые мне нужно изменить? Раньше я никогда не пользовался Azure веб-сайтами, так что для меня это совершенно новая территория, извиняюсь за глупые предположения / ошибки. Единственные другие люди, которых я видел в посте об этих проблемах, имеют проблемы с тайм-аутами, однако когда я запускаю это локально, это обычно завершается в течение 30 секунд, поэтому я не думаю, что это проблема здесь.