Publicando aplicação .Net Core no IIS

O IIS (Internet Information Services) é um servidor web criado pela Microsoft e é utilizado pelas tecnologias .net. Com isso, é proposto uma maneira de configurar o mesmo, o qual pode-se ver a seguir:

Por default, algumas máquinas não tem o IIS habilitado, para isso faça:

  • Acesse o painel de controle
  • Clique em adicionar e/ou remover programas
  • Clique em Habilitar/desabilitar recursos do windows
  • Selecione a opção de “Serviços de Informações da Internet” (IIS)
  • Pressione “OK” e aguarde enquanto o Windows realiza as configurações

Obs.: Caso o IIS já esteja habilitado, reinicie o seu sistema ou rode os seguinte comandos no prompt (abra-o como administrador):

  • net stop was /y (irá parar o serviço de publicação World Wide Web)
  • net start w3svc (irá iniciar o serviço)

O IIS atualmente não reconhece aplicações em .Net Core, com isso, necessita-se informar para ele.

Depois de terminar a instalação, percebe-se que será adicionado a dll “aspnetcore” no local “C:\Windows\System32\inetsrv\aspnetcore.dll”, se estiver rodando o IIS em 32 bit. Caso esteja rodando em 64 bit estará em “C:\Windows\SysWOW64\inetsrv\aspnetcore.dll”. Com isso, o módulo “AspNetCoreModule” será adicionado ao IIS nativo automaticamente, como visto:

Módulo AspNetCoreModule adicionada

Para que o projeto execute perfeitamente, algumas alterações, via código, devem ser realizadas.

Adicione o pacote “Microsoft.AspNetCore.Server.IISIntegration” no projeto principal, o qual é um Middleware para integrar com o IIS. E adicione o seguinte código na sua classe “Program.cs”

var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();

E o seguinte código no método “Configure” da classe “Startup.cs”:

services.Configure<IISOptions>(o => 
{
o.ForwardClientCertificate = false;
});

Precisa-se gerar os arquivos necessários para publicação do projeto. Com isso, no caminho “C:\inetpub\wwwroot” crie uma pasta com o nome de seu projeto e atribua permissão total a ela.

Abra a solução que deseja publicar, clique com o botão direito no projeto principal e selecione “Publicar”.

Publicando projeto

Feito isso, escolha a opção de publicar em uma pasta e defina o caminho referente a pasta que tinha sido criado.

Publicando direto em uma pasta

Após selecionar o tipo de publicação, clique em publicar e aguarde enquanto o Visual Studio termina de realizar as operações necessárias.

Precisa-se configurar o IIS para receber a aplicação. Vá em “Meu Computador”, clique com o botão direito e selecione a opção “Gerenciar”. Após abrir a tela de gerenciamento do computador, clique em “Serviços e Aplicativos” e selecione a opção “Serviços de Informações da Internet”.

Nesta área cria-se uma aplicativo web para rodar as aplicações. Para isso, adiciona-se um novo Pool de Aplicação, clicando com o botão direito em cima do item e selecionando a opção “Adicionar Pool de Aplicação”, inserindo as seguintes informações:

Adicionando Pool de Aplicação

Após configurar o Pool de Aplicação insere-se um novo site, onde deve clicar com o botão direito em “Sites” e selecionar a opção “Adicionar WebSite” e, por fim, preencha com as seguintes informações:

Configurando novo aplicativo

Percebe-se que foi adicionado uma URL personalizada “netcore.teste”, com isso deve-se “apontá-la” para que execute no localhost. Para isso, abra a pasta “C:\Windows\System32\drivers\etc” e edite o arquivo “hosts”, inserindo a seguinte linha no final do arquivo:
“127.0.0.1 netcore.teste”

Após finalizar todas as configurações, basta acessar a URL configurada:

Aplicação rodando com IIS

Apesar de não ter recursos nativos já integrados no IIS, pode-se configurá-lo para habilitar a execução de demais aplicações, como foi o caso do .Net Core.

Bachelor in Computer Science, MBA in Software Architecture and .NET Developer.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store