Случайное исключение HttpClient с экземпляром контейнера Azure

HttpClient создает случайное исключение (возможно, 2-3 раза из 10 попыток) с помощью экземпляра контейнера Azure

Информация об исключении: System.Net.WebException в System.Net.HttpWebRequest.EndGetResponse(System.IAsyncResult) в System.Net.Http.HttpClientHandler.GetResponseCallback(System.IAsyncResult) Информация об исключении System.Net.ttpHtun.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task) в System.Net.Http.HttpClient. ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSucem.Net.Http.HttpClient+\u003cFinishSendAsync\u003ed__58.MoveNext() в SystetHelpers.MSIResourcesAccessInfoHelper + \ u003cGetResourcesAccessInfo \ u003ed__0.MoveNext () \ n.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() \ n в System.Runtime.m[[System.__Canon, mscorlib, версия =4.0.0.0, культура = нейтральная, PublicKeyToken=b77a5c56193ompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.ThreC.Main(System.String[])

На стороне кода я просто стреляю

await httpClient.GetAsync($"http://xyz.eastus.cloudapp.azure.com/api/controller/{id}");
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsAsync<ResourceAccessInfo>();

Поведение является очень случайным, оно происходит только 2-3 раза из 10 попыток. Я также применил повторную попытку, когда первая попытка затем попытается во второй раз, но все равно это не удается

То же самое работает отлично с контейнерами VM всегда.

Обновлено:

Дополнительная информация об исключении: System.Net.Http.HttpRequestException: при отправке запроса произошла ошибка. ---\u003e System.Net.WebException: удаленное имя не может быть разрешено: \u0027cloudbridge1.eastus.cloudapp.azure.com\u0027\r\n в System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)\r\n в System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)\r\n --- Конец внутренней трассировки стека исключений ---\r\n в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) \ r \ n в System.Net.Http.HttpClient. было сгенерировано исключение ---\r\n в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача-задача) \ r \ nccessHelser.MSI.\u003cGetResourcesAccessInfo\u003ed__0.MoveNext()

Что говорит о том, что DNS удаленного сервера не разрешен, я пытался использовать публичный IP-адрес сервера, но такое же случайное поведение, я не уверен, почему экземпляр Azure Container ведет себя так случайным образом

0 ответов

Такое поведение ожидается.

Контейнеры Windows замедляют готовность сети
При первоначальном создании контейнеры Windows могут не иметь входящего или исходящего подключения в течение 30 секунд (или дольше, в редких случаях). Если вашему контейнерному приложению требуется подключение к Интернету, добавьте логику задержки и повторной попытки, чтобы установить подключение к Интернету в течение 30 секунд. После начальной настройки работа с контейнером должна возобновиться соответствующим образом.

https://docs.microsoft.com/en-us/azure/container-instances/container-instances-troubleshooting

Другие вопросы по тегам