Dado que .NET Core es multiplataforma, ASP.NET proyectos Core pueden ejecutarse tanto en Windows como en Linux, y si se despliegan en Windows, pueden desplegarse en IIS o ejecutarse directamente a través de la línea de comandos, independientemente de los servicios IIS, debido a la inclusión de contenedores Kestrel en ASP.NET Core.
Para más información sobre cómo desplegar ASP.NET aplicaciones Core en servicios IIS, puedes consultar lo siguiente:
ASP.NET Core está desplegado en IISEn procesoyFuera de procesoDos modelos de anfitriones
Recursos:
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.
Modelo en proceso
Desde ASP.NET Core 3.0,El alojamiento en proceso está habilitado por defecto para todas las aplicaciones desplegadas en IIS, el archivo web.config se ve así:
se puede verhostingModel="inprocess", un modelo en procesoNo se utiliza cernícalo, pero en su lugar utiliza IISHttpServer() para implementar un nuevo servidor web alojado directamente dentro del pool de aplicaciones IIS, lo cual es algo similar a cómo se introdujo ASP.NET tradicional en IIS.
El siguiente diagrama ilustra la relación entre IIS, ASP.NET módulos Core y las aplicaciones alojadas en proceso:
Al intentar acceder a la web, puedes ver el servidor a través del encabezado de respuesta, como se muestra en la imagen de abajo:
Al observar los procesos a través del administrador de tareas, solo hay 2 procesos, como se muestra en la figura siguiente:
Modelo fuera de proceso
Este modelo IIS actúa como un proxy inverso y, cuando recibe una solicitud, debe reenviarla al servicio Kestrel, que es un servidor web multiplataforma integrado en ASP.NET aplicaciones Core.
El siguiente diagrama ilustra la relación entre IIS, ASP.NET módulos Core y aplicaciones alojadas fuera de proceso:
Modificamos el archivo web.config de la siguiente manera:
Cuando accedemos al sitio web a través de un navegador, podemos ver que el valor servidor del encabezado de respuesta se ha convertido en Kestrel, como se muestra en la figura siguiente:
Mirando el administrador de tareas al mismo tiempo, vi que hay 3 procesos, como se muestra en la figura de abajo:
resumen
En el modelo gestionado InProcess, las solicitudes y respuestas se proporcionan a través de w3wp.exe o IISExpress, mientras que en el proceso de trabajo OutOfProcess implicado, se dotnet.exe En el modelo gestionado InProcess se utiliza un único servidor web, mientras que en el modelo gestionado OutOfProcess se pueden emplear dos servidores web.
La razón obvia para usar el nuevo modelo en proceso es que es más rápido y consume menos recursos,El modelo gestionado InProcess ofrece un mejor rendimientoPorque se ejecuta directamente en el proceso del pool de aplicaciones IIS. No hay tráfico HTTP interno ni sobrecarga, y las solicitudes se procesan inmediatamente.
|