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.

Largos tiempos de espera entre la vista y el controlador, y las llamadas Ajax.

El problema es que el tiempo que tarda el proyecto en llegar a un controlador es de aproximadamente un minuto. Ejemplo: Voy a “mi controlador” en el índice, y el punto de interrupción al inicio del índice tarda un minuto o más en activarse.

Luego, todo el proceso tarda unos segundos en enviar la vista, pero cualquier recarga lleva mucho tiempo y no es viable como tiempo de espera para el usuario.
Cualquier llamada Ajax dentro de la vista también tarda mucho tiempo en llegar a la función que estoy llamando.

Esto comenzó ayer (13-dic-21) y no tengo idea de qué está causando el retraso.
En caso de que no me esté expresando lo suficientemente claro, puse un punto de interrupción al inicio de mi función del controlador (ActionResult). Y tarda aproximadamente un minuto o más en estar activo. Luego presiono continuar y en segundos se carga la vista. El problema es la repentina espera de un minuto entre la vista y el controlador. Lo mismo ocurre con cualquier llamada Ajax.

Cualquier ayuda es apreciada.
Este es el único filtro que tengo activo y la respuesta parece haber mejorado después de hacer algunas llamadas a [AllowAnonymous].

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Posible solución:

    Basándonos en la información proporcionada, hay varios factores que podrían estar causando el retraso en el acceso al controlador y en la ejecución de las llamadas Ajax. Sin embargo, un posible responsable es el filtro de autorización que se aplica de forma predeterminada a todas las acciones y controladores.

    Este filtro se encarga de comprobar si el usuario está autorizado para acceder al recurso solicitado, en función de sus credenciales almacenadas en la sesión. Si el usuario no ha iniciado sesión o su sesión ha expirado, el filtro lo redirige a la página de inicio de sesión.

    Si bien esta medida de seguridad es necesaria, agrega una carga innecesaria a cada solicitud, incluso aquellas que no requieren autenticación. Además, si la sesión es lenta o el servidor está bajo una carga pesada, el filtro podría estar empeorando el retraso.

    Para confirmar si el filtro está causando el problema, puedes comentar o deshabilitarlo temporalmente y ver si el retraso desaparece. Si lo hace, puedes intentar optimizar el filtro, por ejemplo, cachéando los datos de autenticación o utilizando una forma de autenticación más liviana, como tokens JWT.

    Alternativamente, puedes intentar solucionar otros aspectos de la aplicación que podrían estar contribuyendo al retraso, como la conexión a la base de datos, la caché, la configuración de IIS o la latencia de la red. Puedes utilizar herramientas de perfilado como dotTrace, MiniProfiler o Glimpse para identificar posibles cuellos de botella o métodos lentos en el código.

    Finalmente, puedes consultar con tu equipo o un especialista para investigar más a fondo el problema y proponer una solución más exhaustiva. Es importante abordar el retraso lo antes posible, ya que puede afectar la experiencia del usuario y potencialmente llevar a una pérdida de ingresos o insatisfacción.

Comments are closed.