Como o .NET Core é multiplataforma, ASP.NET projetos Core podem rodar tanto no Windows quanto no Linux, e, se implantados no Windows, podem ser implantados no IIS ou executados diretamente pela linha de comando, independentemente dos serviços IIS, devido à inclusão de contêineres Kestrel no ASP.NET Core.
Para mais informações sobre como implantar ASP.NET aplicações Core nos serviços IIS, você pode consultar o seguinte:
ASP.NET Core é implantado no IISEm ProcessoeFora de ProcessoDois modelos de apresentação
Recursos:
O login do hiperlink está visível.
O login do hiperlink está visível.
Modelo em processo
Desde ASP.NET Core 3.0,A hospedagem em processo é ativada por padrão para todas as aplicações implantadas no IIS, o arquivo web.config é assim:
pode ser vistohostingModel="inprocess", um modelo em processoO penedrillo não é usado, mas em vez disso usa IISHttpServer() para implementar um novo servidor web hospedado diretamente dentro do pool de aplicações do IIS, o que é um pouco semelhante a como o ASP.NET tradicional foi introduzido no IIS.
O diagrama a seguir ilustra a relação entre IIS, módulos ASP.NET Core e aplicações hospedadas em processo:
Tentando acessar o site, você pode ver o servidor através do cabeçalho de resposta, como mostrado na imagem abaixo:
Olhando os processos pelo gerenciador de tarefas, há apenas 2 processos, como mostrado na figura abaixo:
Modelo fora do processo
Esse modelo IIS atua como um proxy reverso e, ao receber uma solicitação, precisa encaminhá-la para o serviço Kestrel, que é um servidor web multiplataforma embutido em ASP.NET aplicações Core.
O diagrama a seguir ilustra a relação entre IIS, módulos ASP.NET Core e aplicações hospedadas fora do processo:
Modificamos o arquivo web.config da seguinte forma:
Quando acessamos o site por meio de um navegador, podemos ver que o valor servidor do cabeçalho de resposta se tornou Kestrel, como mostrado na figura abaixo:
Olhando o gerenciador de tarefas ao mesmo tempo, percebi que existem 3 processos, como mostrado na figura abaixo:
resumo
No modelo gerenciado InProcess, solicitações e respostas são fornecidas por meio do w3wp.exe ou IISExpress, enquanto no processo de trabalhador OutOfProcess envolvido, é dotnet.exe No modelo gerenciado InProcess, um único servidor web é usado, enquanto no modelo gerenciado OutOfProcess, dois servidores web podem ser usados.
A razão óbvia para usar o novo modelo In-Process é que ele é mais rápido e consome menos recursos,O modelo gerenciado InProcess oferece melhor desempenhoPorque ele roda diretamente no processo do pool de aplicações IIS. Não há tráfego HTTP interno nem overhead, e as requisições são processadas imediatamente.
|