ASP.NET es una plataforma muy poderosa para crear aplicaciones web. Proporciona gran flexibilidad y capacidades para que pueda utilizarla para crear todo tipo de aplicaciones web.
La mayoría de las personas sólo están familiarizadas con marcos de alto nivel como WebForms y WebServices, que se encuentran en la cima de la jerarquía de ASP.NET.
La información de este artículo se recopila y compila a partir de varios documentos públicos de Microsoft. Al comparar los procesos de procesamiento de solicitudes de las tres generaciones de IIS, IIS5, IIS6 e IIS7, podemos familiarizarnos con el mecanismo subyacente de ASP.NET y comprender cómo. Las solicitudes se procesan desde la Web. El servidor se comunica con el tiempo de ejecución de ASP.NET. Al comprender el mecanismo subyacente, podemos tener una comprensión más profunda de ASP.net.
Proceso de procesamiento de solicitudes de ASP.net en IIS 5una característica notable de IIS 5.x es la separación del servidor web y la aplicación ASP.NET real. Como servidor web, IIS se ejecuta en un proceso llamado InetInfo.exe. InetInfo.exe es un ejecutivo nativo y no es un programa administrado. Nuestra aplicación ASP.NET real se ejecuta en un proceso de trabajo llamado aspnet_wp. el proceso se inicializa, por lo que este es un entorno administrado.
ISAPI: se refiere a aplicaciones que pueden manejar varios sufijos. ISAPI es la abreviatura de las siguientes palabras: Interfaz de programación de aplicaciones de servidor de Internet, Interfaz de programación de aplicaciones de servidor de Internet.
Características del modo IIS 5:1. Primero, solo se puede ejecutar un proceso aspnet_wp en el mismo host al mismo tiempo. Cada aplicación ASP.NET basada en el directorio virtual corresponde a un dominio de aplicación, lo que significa que cada aplicación se ejecuta en el. Lo mismo en el proceso de trabajo, el aislamiento entre aplicaciones se basa en el dominio de la aplicación, no en el proceso.
2. En segundo lugar, ASP.NET ISAPI no solo es responsable de crear el proceso de trabajo aspnet_wp, sino también de monitorear el proceso. Si se detecta que el rendimiento de aspnet_wp cae a un cierto límite inferior establecido, ASP.NET ISAPI será responsable. para finalizar el proceso. Cuando finaliza aspnet_wp, la solicitud posterior hará que ASP.NET ISAPI vuelva a crear un nuevo proceso de trabajo aspnet_wp.
3. Finalmente, dado que IIS y la aplicación se ejecutan en sus propios procesos, la comunicación entre ellos debe utilizar un mecanismo de comunicación específico. Esencialmente, la comunicación entre el proceso InetInfo donde se encuentra IIS y el proceso de trabajo es comunicación entre diferentes procesos en la misma máquina (comunicaciones locales entre procesos, por consideraciones de rendimiento, se utiliza un mecanismo de comunicación basado en canalización con nombre entre ellos). La comunicación entre ASP.NET ISAPI y Worker Process se implementa a través de un conjunto de tuberías entre ellos. También por razones de rendimiento, ASP.NET ISAPI transmite la solicitud al proceso de trabajo de forma asincrónica y obtiene la respuesta, pero el proceso de trabajo obtiene algunas variables basadas en servidor de ASP.NET ISAPI de forma sincrónica.
Proceso de procesamiento de solicitudes ASP.net de IIS6IIS 5.x monitorea la solicitud a través de InetInfo.exe y distribuye la solicitud al proceso de trabajo. En otras palabras, el seguimiento y distribución de solicitudes en IIS 5: http.sys es responsable.
Nota: Para evitar que las aplicaciones de usuario accedan o modifiquen datos críticos del sistema operativo, Windows proporciona dos modos de acceso al procesador: modo de usuario y modo kernel. Generalmente, los programas de usuario se ejecutan en modo Usuario, mientras que el código del sistema operativo se ejecuta en modo Kernel. El código del modo Kernel permite el acceso a toda la memoria del sistema y a todas las instrucciones de la CPU.
En el modo de usuario, http.sys recibe una solicitud http basada en aspx y luego verificará a qué grupo de aplicaciones pertenece la aplicación según la solicitud de acuerdo con la metabase en IIS. Si el grupo de aplicaciones no existe, créelo. De lo contrario, la solicitud se envía directamente a la Cola correspondiente al Grupo de Aplicaciones.
Cada grupo de aplicaciones corresponde a un proceso de trabajo: w3wp.exe, que sin duda se ejecuta en modo de usuario. El mapeo del grupo de aplicaciones y el proceso de trabajo se mantiene en la metabase de IIS. Según dicha asignación, WAS (servicio administrativo web) pasa la solicitud que existe en una cola del grupo de aplicaciones al proceso de trabajo correspondiente (si no, cree dicho proceso). Cuando se inicializa el proceso de trabajo, se carga ASP.NET ISAPI y luego ASP.NET ISAPI carga CLR. El proceso final es el mismo que IIS 5.x: cree un dominio de aplicación para la aplicación mediante el método Create de AppManagerAppDomainFactory; procese la solicitud a través de ProcessRequest de ISAPIRuntime y luego ingrese el proceso en ASP.NET Http Runtime Pipeline.
Proceso de procesamiento de solicitudes ASP.net de IIS 7