生产服务器上间歇性的“操作超时”错误

时间:2019-12-26 09:27:58

标签: c# .net-core asp.net-core-2.0 asp.net-core-webapi identityserver4

我有一个Web API(服务),其目标框架是.net core 2.0。

此服务通过使用“ using”语句使用HttpClient调用自定义身份服务器4终结点。此调用在Development / UAT服务器上始终可以正常运行。 但是在所有生产服务器上,它会间歇性失败并抛出以下异常:

  

发生一个或多个错误。 (发送邮件时发生错误   请求。)异常:System.AggregateException:一个或多个错误   发生。 (发送请求时发生错误。)--->   System.Net.Http.HttpRequestException:发送时发生错误   请求。 ---> System.Net.Http.WinHttpException:操作   超时于   System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()在   System.Threading.Tasks.RendezvousAwaitable`1.GetResult()位于   System.Net.Http.WinHttpHandler.d__105.MoveNext()-   内部异常堆栈跟踪的结尾---   System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()在   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)   System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()   在   System.Net.Http.HttpClient.d__58.MoveNext()
  ---内部异常堆栈跟踪的结尾---在System.Threading.Tasks.Task`1.GetResultCore(Boolean   在Get(String a,String b)处的waitCompletionNotification)

我经历了相关的堆栈溢出文章,有人建议使HttpClient静态,因为它可能会引发套接字耗尽错误。但是我也没有收到该错误,也无法在开发服务器上重现此问题。我创建了一个控制台应用程序,并将此服务调用了64k次,但仍然可以正常工作。

How to stop outbound HTTP connections from timing out

Asp.net Core HttpClient has many TIME_WAIT or CLOSE_WAIT connections

有人可以告诉我,仅在生产服务器上出现此间歇性错误的原因是什么,或者有什么方法可以在开发服务器上重现此问题?我已经尝试通过拨打许多服务电话,但仍然无法重现该错误。

0 个答案:

没有答案