Este foi um problema no servidor Kestrel e foi resolvido no lançamento do dotnet core 2.1.
Ref: link
Temos um gateway de aplicativo configurado em frente ao nosso aplicativo da web em uma VM do Azure. Temos observado exceções regulares do ECONNRESET que parecem ser geradas como resultado do probe de integridade padrão. Eu posso ver a cada 30 segundos um par de pedidos para 127.0.0.1. Em uma base bastante regular (mais de 20 instâncias nas últimas 24 horas), uma dessas solicitações resulta em uma exceção ECONNRESET conforme a saída abaixo:
17:10:35 [Information] () "Request starting HTTP/1.1 GET http://127.0.0.1/ "
17:10:35 [Information] () {"Connection":["Keep-Alive"],"Host":["127.0.0.1"],"Max-Forwards":["10"]}
17:10:35 [Information] () Executing action method "HonestyBoxWeb.Controllers.HomeController.Index (HonestyBoxWeb)" with arguments (null) - ModelState is Valid
17:10:35 [Information] () Executing ViewResult, running view at path "/Views/Home/Index.cshtml".
17:10:35 [Information] () Executed action "HonestyBoxWeb.Controllers.HomeController.Index (HonestyBoxWeb)" in 2.8666ms
17:10:35 [Information] () "Request finished in 5.2758ms 200 text/html; charset=utf-8"
17:10:35 [Information] () Connection id ""0HLCE7PIFCIGH"" request processing ended abnormally.
System.IO.IOException: Error -104 ECONNRESET connection reset by peer ---> Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.UvException: Error -104 ECONNRESET connection reset by peer
at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.LibuvOutputConsumer.<WriteOutputAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.LibuvConnection.<Start>d__26.MoveNext()
--- End of inner exception stack trace ---
at Microsoft.AspNetCore.Server.Kestrel.Internal.System.IO.Pipelines.PipeCompletion.ThrowFailed()
at Microsoft.AspNetCore.Server.Kestrel.Internal.System.IO.Pipelines.Pipe.GetResult(ReadResult& result)
at Microsoft.AspNetCore.Server.Kestrel.Internal.System.IO.Pipelines.Pipe.Microsoft.AspNetCore.Server.Kestrel.Internal.System.IO.Pipelines.IReadableBufferAwaiter.GetResult()
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Frame'1.<ProcessRequestsAsync>d__2.MoveNext()
Parece que a verificação de saúde está postando uma solicitação e, em seguida, redefinindo a conexão. Estou interpretando corretamente e há alguma maneira de resolver isso?
Este foi um problema no servidor Kestrel e foi resolvido no lançamento do dotnet core 2.1.
Ref: link
Tags azure azure-networking