evento
19/11, 23 - 21/11, 23
Participe de sessões on-line no Microsoft Ignite criadas para expandir suas habilidades e ajudá-lo a lidar com os problemas complexos de hoje.
Registe-se agoraEste browser já não é suportado.
Atualize para o Microsoft Edge para tirar partido das mais recentes funcionalidades, atualizações de segurança e de suporte técnico.
Nota
Esta não é a versão mais recente deste artigo. Para a versão atual, consulte a versão .NET 9 deste artigo.
Aviso
Esta versão do ASP.NET Core não tem mais suporte. Para obter mais informações, consulte a Política de Suporte do .NET e do .NET Core. Para a versão atual, consulte a versão .NET 9 deste artigo.
Importante
Essas informações relacionam-se ao produto de pré-lançamento, que poderá ser substancialmente modificado antes do lançamento comercial. A Microsoft não oferece nenhuma garantia, explícita ou implícita, quanto às informações fornecidas aqui.
Para a versão atual, consulte a versão .NET 9 deste artigo.
Como os aplicativos ASP.NET Core são executados em um processo separado do processo de trabalho do IIS, o Módulo do ASP.NET Core realiza o gerenciamento de processos. O módulo inicia o processo para o aplicativo ASP.NET Core quando a primeira solicitação chega e reinicia o aplicativo se ele é desligado ou falha. Isso é basicamente o mesmo comportamento que o dos aplicativos que são executados dentro do processo e são gerenciados pelo WAS (Serviço de Ativação de Processos do Windows).
O diagrama a seguir ilustra a relação entre o IIS, o Módulo do ASP.NET Core e um aplicativo hospedado de fora d processo:
O Módulo do ASP.NET Core especifica a porta por meio de uma variável de ambiente na inicialização. A extensão UseIISIntegration configura o servidor a ser escutado em http://localhost:{PORT}
. Outras verificações são executadas e as solicitações que não se originam do módulo são rejeitadas. O módulo não dá suporte ao encaminhamento de HTTPS. As solicitações são encaminhadas por HTTP, mesmo se forem recebidas pelo IIS por HTTPS.
Depois que o Kestrel coleta a solicitação do módulo, a solicitação é encaminhada ao pipeline do middleware do ASP.NET Core. O pipeline do middleware manipula a solicitação e a passa como uma instância de HttpContext
para a lógica do aplicativo. O middleware adicionado pela integração do IIS atualiza o esquema, o IP remoto e pathbase para encaminhar a solicitação para o Kestrel. A resposta do aplicativo é retornada ao IIS, que a encaminha para o cliente HTTP que iniciou a solicitação.
Para obter diretrizes de configuração do Módulo do ASP.NET Core, consulte Módulo do ASP.NET Core (ANCM) para IIS.
Para saber mais sobre hospedagem, confira Host no ASP.NET Core.
Ao criar um host em CreateHostBuilder
(Program.cs
), chame CreateDefaultBuilder para habilitar a integração do IIS:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
...
Para saber mais sobre CreateDefaultBuilder
, confira Host Genérico .NET no ASP.NET Core.
Modelo de hospedagem de fora do processo
Para configurar opções do IIS, inclua uma configuração de serviço para IISOptions em ConfigureServices. O exemplo a seguir impede que o aplicativo preencha HttpContext.Connection.ClientCertificate
:
services.Configure<IISOptions>(options =>
{
options.ForwardClientCertificate = false;
});
Opção | Padrão | Configuração |
---|---|---|
AutomaticAuthentication |
true |
Se true , o middleware de integração do IIS define o HttpContext.User autenticado pela Autenticação do Windows. Se false , o middleware fornecerá apenas uma identity para HttpContext.User e responderá a desafios quando explicitamente solicitado pelo AuthenticationScheme . A autenticação do Windows deve estar habilitada no IIS para que o AutomaticAuthentication funcione. Saiba mais no tópico Autenticação do Windows. |
AuthenticationDisplayName |
null |
Configura o nome de exibição mostrado aos usuários em páginas de logon. |
ForwardClientCertificate |
true |
Se true e o cabeçalho da solicitação MS-ASPNETCORE-CLIENTCERT estiverem presentes, o HttpContext.Connection.ClientCertificate será populado. |
O Middleware de integração do IIS e o Módulo do ASP.NET Core estão configurados para encaminhar o:
O Middleware de Integração do IIS configura o Middleware de Cabeçalhos Encaminhados.
Configuração adicional pode ser necessária para aplicativos hospedados atrás de servidores proxy adicionais e balanceadores de carga. Para obter mais informações, veja Configurar o ASP.NET Core para trabalhar com servidores proxy e balanceadores de carga.
Para configurar um aplicativo para hospedagem fora do processo, defina o valor da propriedade <AspNetCoreHostingModel>
como OutOfProcess
no arquivo de projeto (.csproj
):
<PropertyGroup>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
A hospedagem em processo é definida com InProcess
, que é o valor padrão.
O valor de <AspNetCoreHostingModel>
não diferencia maiúsculas de minúsculas, portanto, inprocess
e outofprocess
são valores válidos.
O servidor Kestrel é usado, em vez do servidor HTTP do IIS (IISHttpServer
).
Fora do processo, CreateDefaultBuilder
chama UseIISIntegration para:
Process.GetCurrentProcess().ProcessName
relata w3wp
/iisexpress
(em processo) ou dotnet
(fora do processo).
Muitos módulos nativos, como a Autenticação do Windows, permanecem ativos. Para saber mais sobre módulos do IIS ativos com o Módulo do ASP.NET Core, confira Módulos do IIS com o ASP.NET Core.
O Módulo do ASP.NET Core também pode:
Comentários do ASP.NET Core
O ASP.NET Core é um projeto código aberto. Selecione um link para fornecer comentários:
evento
19/11, 23 - 21/11, 23
Participe de sessões on-line no Microsoft Ignite criadas para expandir suas habilidades e ajudá-lo a lidar com os problemas complexos de hoje.
Registe-se agora