Azure容器实例

时间:2018-05-25 11:27:05

标签: c# azure-container-instances

HttpClient使用Azure容器实例抛出一个随机异常(可能是10次尝试中的2-3次)

  

异常信息:System.Net.WebException at   System.Net.HttpWebRequest.EndGetResponse(System.IAsyncResult)at at   System.Net.Http.HttpClientHandler.GetResponseCallback(System.IAsyncResult)   异常信息:System.Net.Http.HttpRequestException at   System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()at   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)   在   System.Net.Http.HttpClient + \ u003cFinishSendAsync \ u003ed__58.MoveNext()   在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()at   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,Version = 4.0.0.0,   文化=中性,   公钥= 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>();

行为非常随机,在10次尝试中只发生2-3次 我还在第一次尝试时再次尝试重试,但第二次尝试但仍然失败

同样适用于VM容器。

更新:

其他例外信息: System.Net.Http.HttpRequestException:发送请求时发生错误。 --- \ u003e System.Net.WebException:无法解析远程名称:\ u0027cloudbridge1.eastus.cloudapp.azure.com \ u0027 \ r \ n在System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)\ r \在System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)\ r \ n ---内部异常堆栈跟踪结束--- \ r \ n在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\ r \在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\ r \ n在System.Net.Http.HttpClient。\ u003cFinishSendAsync \ u003ed__58.MoveNext()\ r \ n ---从前一个位置的堆栈跟踪结束异常被抛出--- \ r \ n在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\ r \ n在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\ r \ n在UcClearly.MSIAPIHelpers.MSIResourcesAccessInfoHelper \ u003cGetResourcesAccessInfo \ u003ed__0.MoveNext()

哪个建议远程服务器DNS没有解决,我尝试使用服务器的公共IP但也有相同的随机行为,我不确定为什么Azure容器实例会以这种随机方式运行

1 个答案:

答案 0 :(得分:1)

此行为是预期的。

  

Windows容器减慢了网络准备时间
  最初创建时,Windows容器可能长达30秒(在极少数情况下甚至更长)都没有入站或出站连接。如果您的容器应用程序需要Internet连接,请添加延迟和重试逻辑,以允许30秒建立Internet连接。初始设置后,容器联网应适当恢复。

https://docs.microsoft.com/en-us/azure/container-instances/container-instances-troubleshooting#windows-containers-slow-network-readiness