HttpClient 使用 Azure 容器实例抛出随机异常(10 次尝试中可能有 2-3 次)
异常信息:System.Net.HttpWebRequest.EndGetResponse(System.IAsyncResult) 处 System.Net.Http.HttpClientHandler.GetResponseCallback(System.IAsyncResult) 处的 System.Net.WebException 异常信息:System.Runtime 处的 System.Net.Http.HttpRequestException .ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task) 在 System.Net.Http.HttpClient+\u003cFinishSendAsync\u003ed__58.MoveNext() 在 System.Runtime.ExceptionServices。 ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSucem.Net.Http.HttpClient+\u003cFinishSendAsync\u003ed__58.MoveNext() 在 SystetHelpers.MSIResourcesAccessInfoHelper+\u003cGetResourcesAccessInfo\u003ed__0.MoveNext()\n.Runtime.ExceptionServices.ExceptionDisp()Throw()\n 在 System.Runtime.m[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, 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>();
行为非常随机,在 10 次尝试中仅发生 2-3 次
同样适用于 VM 容器。
更新:
附加异常信息:System.Net.Http.HttpRequestException:发送请求时出错。---\u003e System.Net.WebException:无法解析远程名称:\u0027cloudbridge1.eastus.cloudapp.azure.com\u0027\r\n at 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(Task task)\r\n 在 System.Net.Http.HttpClient.\u003cFinishSendAsync\u003ed__58.MoveNext()\r\n--- 来自上一个位置的堆栈跟踪结束在 System.Runtime.ExceptionServices.ExceptionDispatchInfo 引发了异常 ---\r\n。
这表明远程服务器 DNS 未解析,我也尝试使用服务器的公共 IP 但相同的随机行为,我不确定 Azure 容器实例为什么会以这种随机方式运行