.NET

6 mar, 2018

Configuração e deploy de aplicativos ASP.Net Core 2.0 no IIS

Publicidade

Se você desenvolve aplicações ASP.Net há algum tempo, já está familiarizado com o IIS (Internet Information Services). Ele provê basicamente tudo que sua aplicação precisa em um web server. O mesmo código que suporta as tão famosas páginas .asp de muitos anos atrás, agora também suporta tecnologias como ASP.NET assíncrono. Não podemos negar que o IIS é muito bom, e também não podemos afirmar que ele é o servidor web mais rápido que vemos por aí.

Pensando nisso, a comunidade .NET criou o servidor web Kestrel. Com o Kestrel eles não precisavam mais ficar se preocupando com compatibilidades de tecnologias antigas e fizeram basicamente tudo do zero. E foi exatamente isso que eles fizeram: o Kestrel e o ASP.net Core foram criados pensando em alto desempenho.

Você pode usar o Kestrel sozinho ou como um servidor proxy reverso como o IIS, Nginx ou Apache. Um servidor proxy reverso recebe solicitações HTTP da Internet e as encaminha para o Kestrel após tratamento preliminares. Sendo assim, o Kestrel pode ser utilizado como um módulo no IIS.

Veja abaixo um diagrama que ilustra a relação entre o IIS e aplicativos ASP.NET Core:

Instalação do .NET Core Windows Server hosting

Antes de publicar sua aplicação, você precisa instalar o .NET Core 2.0 Windows server hosting para o IIS. O download pode ser feito nesse link.

Após a instalação, é recomendável efetuar os seguintes comandos para parar/iniciar o IIS.

  • net stop was /y
  • net start w3svc

Criando um site no IIS

Agora, vamos criar um site no IIS; mas antes, vamos criar um pool no IIS para trabalhar com código não gerenciado. Para isso, abra o IIS, clique em Application Pools com o botão direto do mouse e selecione “Add Application Pools” (adicionar pool de aplicações):

Em seguida, crie o Pool com .NET CLR Version: No managed code:

Agora, crie o site clicando com o botão direito em Sites, “Add Website”:

E ao criar o website, siga as etapas conforme figura abaixo (a porta 8081 é apenas uma sugestão, bem como nome do site).

Agora com o site criado clique em “Modules”:

O AspNetCoreModule deve estar presente nessa lista.

Publicando no IIS

De volta no Visual Studio Code, no terminal, faça a publicação do aplicativo no destino onde você criou o seu site. No meu caso, foi na pasta aspnetcore no IIS. Altere adequadamente no seu computador.

Agora abra o site no “localhost:8081” (ou porta que você especificou) e o aplicativo ASP.net Core 2.0 está rodando no IIS.

Conclusão

Nesse artigo, conhecemos um pouco sobre o Kestrel e como ele funciona como um módulo no IIS. Também aprendemos como configurar o ASP.net Core 2.0 Windows Server Hosting no Windows e publicar uma aplicação demo.

Fontes:

Instalação .NET Core 2.0 Windows Server Hosting