ASP.NET é uma plataforma muito poderosa para construção de aplicativos Web. Ele oferece grande flexibilidade e recursos para que você possa usá-lo para construir todos os tipos de aplicativos Web.
A maioria das pessoas está familiarizada apenas com estruturas de alto nível, como WebForms e WebServices – elas estão no topo da hierarquia do ASP.NET.
As informações neste artigo são coletadas e compiladas de vários documentos públicos da Microsoft. Ao comparar os processos de processamento de solicitações das três gerações do IIS, IIS5, IIS6 e IIS7, podemos nos familiarizar com o mecanismo subjacente do ASP.NET e entender como. as solicitações são processadas da Web. O servidor se comunica com o tempo de execução do ASP.NET. Ao compreender o mecanismo subjacente, podemos ter uma compreensão mais profunda do ASP.net.
Processo de processamento de solicitação ASP.net no IIS 5Um recurso notável do IIS 5.x é a separação do servidor Web e do aplicativo ASP.NET real. Como um servidor Web, o IIS é executado em um processo chamado InetInfo.exe. InetInfo.exe é um executivo nativo e não é um programa gerenciado. Nosso aplicativo ASP.NET real é executado em um processo de trabalho chamado aspnet_wp. o processo é inicializado, portanto este é um ambiente gerenciado.
ISAPI: refere-se a aplicativos que podem lidar com vários sufixos. ISAPI é a abreviatura das seguintes palavras: Internet Server Application Programe Interface, Internet Server Application Programming Interface.
Recursos do modo IIS 5:1. Primeiro, apenas um processo aspnet_wp pode ser executado no mesmo host ao mesmo tempo. Cada aplicativo ASP.NET baseado no diretório virtual corresponde a um domínio de aplicativo, o que significa que cada aplicativo é executado no. mesmo No Processo de Trabalho, o isolamento entre Aplicativos é baseado no Domínio do Aplicativo, não no Processo.
2. Em segundo lugar, o ASP.NET ISAPI não é apenas responsável por criar o processo de trabalho aspnet_wp, mas também por monitorar o processo. Se for detectado que o desempenho do aspnet_wp cai para um determinado limite inferior definido, o ASP.NET ISAPI será responsável. para encerrar o processo. Quando aspnet_wp terminar, a solicitação subsequente fará com que o ASP.NET ISAPI recrie um novo processo de trabalho aspnet_wp.
3. Finalmente, como o IIS e a Aplicação rodam em seus próprios processos, a comunicação entre eles deve utilizar um mecanismo de comunicação específico. Essencialmente, a comunicação entre o processo InetInfo onde o IIS está localizado e o Processo de Trabalho é a comunicação entre diferentes processos na mesma máquina (comunicações entre processos locais). Para considerações de desempenho, um mecanismo de comunicação baseado em Pipe Nomeado é usado entre eles. A comunicação entre ASP.NET ISAPI e Worker Process é implementada através de um conjunto de Pipes entre eles. Também por motivos de desempenho, o ASP.NET ISAPI transmite a solicitação ao processo de trabalho de maneira assíncrona e obtém a resposta, mas o processo de trabalho obtém algumas variáveis baseadas no servidor do ASP.NET ISAPI de maneira síncrona.
Processo de processamento de solicitação ASP.net do IIS6O IIS 5.x monitora a solicitação por meio de InetInfo.exe e distribui a solicitação para o processo de trabalho. Em outras palavras, o monitoramento e distribuição de solicitações no IIS 5.: http.sys é o responsável.
Nota: Para evitar que os aplicativos do usuário acessem ou modifiquem dados críticos do sistema operacional, o Windows fornece dois modos de acesso ao processador: Modo de Usuário e Modo Kernel. Geralmente, os programas do usuário são executados no modo Usuário, enquanto o código do sistema operacional é executado no modo Kernel. O código do Modo Kernel permite acesso a toda a memória do sistema e a todas as instruções da CPU.
No modo de usuário, http.sys recebe uma solicitação http baseada em aspx e, em seguida, verificará a qual pool de aplicativos o aplicativo com base na solicitação pertence de acordo com a metabase no IIS. Se o pool de aplicativos não existir, crie-o. Caso contrário, a solicitação é enviada diretamente para a Fila correspondente ao Pool de Aplicativos.
Cada pool de aplicativos corresponde a um processo de trabalho: w3wp.exe, que sem dúvida está sendo executado no modo de usuário. O mapeamento do pool de aplicativos e do processo de trabalho é mantido na metabase do IIS. Com base nesse mapeamento, o WAS (serviço administrativo da Web) passa a solicitação que existe em uma fila de pool de aplicativos para o processo de trabalho correspondente (se não, crie tal processo). Quando o processo de trabalho é inicializado, o ASP.NET ISAPI é carregado e o ASP.NET ISAPI carrega o CLR. O processo final é o mesmo do IIS 5.x: crie um domínio de aplicativo para aplicativo por meio do método Create de AppManagerAppDomainFactory; processe a solicitação por meio do ProcessRequest do ISAPIRuntime e, em seguida, insira o processo no pipeline de tempo de execução HTTP do ASP.NET.
Processo de processamento de solicitação ASP.net do IIS 7