Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

261
Vistas
¿Por qué los componentes de middleware se llaman dos veces en una canalización de .Net Core?

Si creo una aplicación ASP.net Web Core en blanco, luego reemplazo el método Configure() en Startup.cs con el siguiente método, cada operación Use() y Run() se llama dos veces.

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.Use(async (context, next) => { // Do work that doesn't write to the Response. await next.Invoke(); // Do logging or other work that doesn't write to the Response. int i = 0; }); app.Use(async (context, next) => { // Do work that doesn't write to the Response. await next.Invoke(); // Do logging or other work that doesn't write to the Response. int j = 0; }); app.Run(async context => { await context.Response.WriteAsync("Hello, World!"); }); }

Entonces el orden de las operaciones es:

  1. En la primera app.Use(), se llama await next.Invoke()
  2. En la segunda aplicación. Use(), espere a continuación. Se llama a Invoke()
  3. App.Run() se llama

Luego, regresa a través de la tubería.

  1. En la segunda app.Use(), se llama int j = 0
  2. En la primera app.Use(), se llama int i = 0

Todo esto se espera a medida que pasa a través del Middleware y viceversa. Pero luego, cada uno de los pasos anteriores se repite de nuevo.

¿Por qué cada componente de middleware se llama dos veces?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

La razón por la que se llama dos veces es porque su navegador está realizando dos solicitudes a su aplicación. Uno para la ruta raíz de la aplicación '/', el otro para /favicon.ico (algunos navegadores como Chrome hacen una solicitud de favicon de forma predeterminada, captura de pantalla a continuación ). Puede consultar las herramientas de desarrollo de su navegador.

Herramientas de desarrollo de Chrome (F12 o Ctr + Shift + I acceso directo)

También puede verificar eso colocando un registro de depuración dentro de la aplicación. app.Use para ver las rutas de solicitud. p.ej

 app.Use(async (context, next) => { Debug.WriteLine(context.Request.Path.Value); // Do work that doesn't write to the Response. await next.Invoke(); // Do logging or other work that doesn't write to the Response. int i = 0; });

Por lo tanto, la configuración de su middleware se ejecuta dos veces. Una vez para la raíz '/' y la segunda vez para la ruta '/favicon.ico'

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda