Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

267
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda