Azure ASP .net WebApp Se agotó el tiempo de espera de la solicitud

Implementé una aplicación web ASP .net MVC para el servicio de la aplicación Azure.

Hago una solicitud GET desde mi sitio a algún método de controlador que obtiene datos de DB (DbContext). A veces, el proceso de obtención de datos de DB puede tomar más de 4 minutos. Eso significa que mi solicitud no tiene más de 4 minutos de acción. Después de eso Azure mata la conexión, recibo un mensaje:

500 – Se agotó el tiempo de espera de la solicitud.

El servidor web no respondió dentro del tiempo especificado.

Este es un ejemplo de método:

[HttpGet] public async Task LongGet(string testString) { var task = Task.Delay(360000); await task; return Json("Woke", JsonRequestBehavior.AllowGet); } 

He visto muchas preguntas como esta, pero no obtuve respuesta.

No funciona 1 No puedo dar otro enlace: la reputación es muy baja.

He leído este artículo sobre Azure Load Balancer, que no está disponible para webapps, pero está escrito que la forma más común de manejar mi problema en la aplicación web de Azure es usar TCP Keep-alive. Así que cambié mi método:

 [HttpGet] public async Task LongPost(string testString) { ServicePointManager.SetTcpKeepAlive(true, 1000, 5000); ServicePointManager.MaxServicePointIdleTime = 400000; ServicePointManager.FindServicePoint(Request.Url).MaxIdleTime = 4000000; var task = Task.Delay(360000); await task; return Json("Woke", JsonRequestBehavior.AllowGet); } 

Pero aún recibes el mismo error. Estoy usando una solicitud GET simple como

 GET /Home/LongPost?testString="abc" HTTP/1.1 Host: longgetrequest.azurewebsites.net Cache-Control: no-cache Postman-Token: bde0d996-8cf3-2b3f-20cd-d704016b29c6 

Por lo tanto, estoy buscando la respuesta que estoy haciendo mal y cómo boost el tiempo de espera de solicitud en la aplicación Azure Web. Cualquier ayuda es apreciada.

Configuración de Azure en el portal:

Zócalos web – En

Siempre encendido – Encendido

Ajustes de Aplicacion:

SCM_COMMAND_IDLE_TIMEOUT = 3600

WEBSITE_NODE_DEFAULT_VERSION = 4.2.3

230 segundos . Eso es. Ese es el tiempo de espera de solicitudes en vuelo en Azure App Service. Está codificado en la plataforma para que TCP esté siempre activo o no.

Fuente : vea la respuesta de David Ebbo aquí:
https://social.msdn.microsoft.com/Forums/en-US/17305ddc-07b2-436c-881b-286d1744c98f/503-errors-with-large-pdf-file?forum=windowsazurewebsitespreview

Hay un tiempo de espera de 230 segundos (es decir, poco menos de 4 minutos) para las solicitudes que no envían datos. Después de eso, el cliente obtiene los 500 que vio, aunque en realidad la solicitud puede continuar en el servidor.

Sin saber más acerca de su aplicación, es difícil sugerir un enfoque diferente. Sin embargo, lo que está claro es que necesitas un enfoque diferente:

Tal vez devuelva un 202 Accepted lugar con un encabezado de Location para sondear el resultado más tarde?

Acabo de cambiar mi sitio web de Azure de Shared Enviroment a Standard, y funciona.