Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 7562|Resposta: 2

[.NET Core] ASP.NET Core hospeda os modelos In-Process e Out-Of-Process no IIS

[Copiar link]
Postado em 2022-5-14 13:18:08 | | | |
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:

Implante ASP.NET Core no servidor IIS
https://www.itsvse.com/thread-7838-1-1.html
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.





Anterior:Nginx adiciona o protocolo HTTP/2 ativado
Próximo:Usar o HttpClient de forma incorreta pode quebrar seu software
 Senhorio| Postado em 14-05-2022 às 13:20:23 |
ASP.NET Desempenho dentro e fora do processo Core:http://blog.iis7.com/article/5958.html
ASP.NET teste de desempenho do Core 5 sob IIS, Nginx, Caddy:https://cloud.tencent.com/developer/article/1788073
Postado em 14-05-2022 15:07:14 |
Aprenda a aprender
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com