es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La actualización de .net 5 a .net 6 causa tiempos de espera para llamadas externas http(s) a través de webclient.

Decidimos actualizar el código de nuestra página web Asp.net core de .net5 a .net6, simplemente establecimos el “marco de destino” de la aplicación web en .net6 en lugar de .net5. No hubo errores de compilación, lo probamos en nuestro entorno de desarrollo y todo parecía funcionar bien.
No se realizaron cambios de código y anteriormente la aplicación .net5 había estado funcionando sin problemas durante muchos meses (y antes de eso, .net framework 4.8).

Cuando implementamos nuestra aplicación en nuestro entorno de producción en vivo, en cuestión de minutos notamos una desaceleración de las llamadas externas (llamadas a puntos finales https, a menudo similares a REST), registramos cualquier llamada que tardara más de 5 segundos, en el transcurso de unos minutos todas las llamadas pasaron de ser lentas a caducar (20 segundos).

Estamos usando System.Net.WebClient para todas nuestras llamadas, lo cual entiendo que ahora es obsoleto en .net6, sin embargo, no esperaría que esto cambiara de repente el comportamiento, e incluso así, intentamos cambiar a HttpClient, el enfoque recomendado, con los mismos resultados.

Siento que debo estar perdiendo algo realmente fundamental, simplemente actualizamos el marco de destino y volvimos a implementar y ahora todas las llamadas realizadas por WebClient eventualmente se agotan. Parece ser un problema de “agotamiento de recursos” en el código, debido a la desaceleración y luego al caducar, pero no entiendo qué está sucediendo aquí.

Para ser claros, no estamos haciendo nada especial, solo llamando a alrededor de 3 servicios externos a través de WebClient para cada usuario, y tenemos alrededor de 100 usuarios por minuto en el pico, anteriormente, no hubo tiempos de espera.

Agradeceríamos mucho cualquier indicación sobre qué podría estar causando los tiempos de espera.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece ser que después de actualizar el marco objetivo de la aplicación web de .NET5 a .NET6, se han presentado problemas con las llamadas externas que se agotan. El uso de System.Net.WebClient para todas las llamadas puede ser una posible causa del problema, ya que ahora está obsoleto en .NET6. Sin embargo, el cambio a HttpClient, que es el enfoque recomendado, no resolvió el problema.
    Es posible que este sea un problema de “falta de recursos” debido a la ralentización y el subsiguiente agotamiento de las llamadas externas. Sin embargo, si no se realizaron cambios en el código y la aplicación anterior de .NET5 funcionaba sin problemas, puede valer la pena investigar cualquier cambio realizado en el entorno de producción o la configuración del servidor durante el proceso de implementación.
    También es recomendable revisar los registros y monitorear el uso de recursos del sistema para identificar posibles cuellos de botella o limitaciones que puedan estar causando el problema. Consultar con un profesional especializado en rendimiento de redes y aplicaciones puede ser útil para resolver este problema.

Comments are closed.