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.

Cómo hacer que HTTP/2 funcione con una aplicación ASP.NET Core alojada en IIS

Según https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/protocols?view=aspnetcore-6.0, HTTP/2 debería funcionar automáticamente de forma predeterminada al ejecutar una aplicación ASP.NET Core en IIS utilizando SSL.

A pesar de esto, todas las respuestas se envían utilizando HTTP1.1 en su lugar. ¿Podría ser que IIS esté enviando todo a Kestrel a través de http en lugar de https?

Cuando se ejecuta la aplicación sin IIS, las primeras filas del registro se ven así:

info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: https://localhost:5001

Pero estas líneas faltan cuando se ejecuta bajo IIS. Sé que Kestrel se niega a usar HTTP/2 si las solicitudes no se hacen a través de https.
En su lugar, simplemente comienza con esto:

info: Microsoft.Hosting.Lifetime[0]
      Content root path: info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
      Request starting HTTP/1.1 GET https://tax/ – –

¿Qué me estoy perdiendo?

Enlaces para el sitio:

View post on imgur.com

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Es posible que IIS esté enviando todo a Kestrel a través de HTTP en lugar de HTTPS, lo que está causando que la aplicación ASP.NET Core utilice HTTP/1.1 en lugar de HTTP/2. Esto se puede confirmar verificando los registros, que deberían mostrar si las solicitudes se están realizando a través de HTTPS o no. Si las solicitudes no se están realizando a través de HTTPS, Kestrel se negará a utilizar HTTP/2.

    Una posible razón por la cual las solicitudes no se están realizando a través de HTTPS podría ser que las asociaciones para el sitio en IIS no estén configuradas correctamente. Es importante asegurarse de que las asociaciones de HTTPS estén configuradas correctamente, incluyendo la configuración de los certificados SSL y la selección de los protocolos SSL adecuados.

    También es importante tener en cuenta que el soporte de HTTP/2 solo está disponible en IIS 10 o posterior, y que HTTP/2 puede no estar disponible si el servidor se está ejecutando en una versión más antigua de Windows.

Comments are closed.