Suporte ao IIS no tempo de desenvolvimento no Visual Studio para ASP.NET Core

Por Sourabh Shirhatti

Este artigo descreve o suporte do Visual Studio para a depuração de aplicativos do ASP.NET Core em execução com o IIS no Windows Server. Este tópico orienta como habilitar esse cenário e configurar um projeto.

Pré-requisitos

  • Visual Studio para Windows
  • Carga de trabalho ASP.NET e desenvolvimento para a Web
  • Carga de trabalho de desenvolvimento multiplataforma do .NET Core
  • Certificado de segurança X.509 (para o suporte a HTTPS)

Habilitar o IIS

  1. No Windows, navegue até Painel de Controle>Programas>Programas e Recursos>Ativar ou desativar recursos do Windows (lado esquerdo da tela).
  2. Marque a caixa de seleção Serviços de Informações da Internet. Selecione OK.

A instalação do IIS pode exigir uma reinicialização do sistema.

Configurar o IIS

O IIS deve ter um site configurado com o seguinte:

  • Nome do host Normalmente, o Site padrão é usado com um nome do Host de localhost. No entanto, qualquer site válido do IIS com um nome de host exclusivo funciona.
  • Associação do site
    • Para aplicativos que exijam HTTPS, crie uma associação à porta 443 com um certificado. Tipicamente, o Certificado de Desenvolvimento do IIS Express é usado, mas qualquer certificado válido funciona.
    • Para aplicativos que usam HTTP, confirme a existência de uma associação à porta 80 ou crie uma para um novo site.
    • Uso de uma associação simples para HTTP ou HTTPS. Não há suporte para a associação simultânea às portas HTTP e HTTPS.

Habilitar o suporte ao IIS no tempo de desenvolvimento no Visual Studio

  1. Inicie o Instalador do Visual Studio.

  2. Selecione Modificar para a instalação do Visual Studio que você planeja usar para o suporte de tempo de desenvolvimento do IIS.

  3. Para a carga de trabalho de desenvolvimento da web e ASP.NET, localize e instale o componente desuporte IIS ao tempo de desenvolvimento.

    O componente está listado na seção Opcional, em Suporte IIS ao tempo de desenvolvimento no painel Detalhes da instalação à direita das cargas de trabalho. O componente instala o Módulo do ASP.NET Core, que é um módulo nativo do IIS necessário para executar aplicativos ASP.NET Core com o IIS.

Configurar o projeto

Redirecionamento para HTTPS

Para um novo projeto que exija HTTPS, selecione a caixa de seleção para Configurar para HTTPS na janela Criar um novo Aplicativo Web ASP.NET Core. A marcação da caixa de seleção adiciona ao aplicativo um Redirecionamento de HTTPS e Middleware HSTS quando ele é criado.

Para um projeto existente que exija HTTPS, use o Redirecionamento de HTTPS e Middleware HSTS em Startup.Configure. Para saber mais, confira Impor HTTPS no ASP.NET Core.

Para um projeto que usa HTTP, o Redirecionamento de HTTPS e o Middleware HSTS não são adicionados ao aplicativo. Nenhuma configuração de aplicativo é necessária.

Perfil de inicialização do IIS

Crie um novo perfil de inicialização para adicionar suporte ao IIS no tempo de desenvolvimento:

  1. Clique com o botão direito do mouse no projeto em Gerenciador de Soluções. Selecione Propriedades. Abra a guia Depurar.

  2. Para Perfil, selecione o botão Novo. Nomeie o perfil "IIS" na janela pop-up. Selecione OK para criar o perfil.

  3. Para a configuração Iniciar, selecione IIS da lista.

  4. Selecione a caixa de seleção Iniciar navegador e forneça a URL de ponto de extremidade.

    Quando o aplicativo exigir HTTPS, use um ponto de extremidade HTTPS (https://). Para HTTP, use um ponto de extremidade HTTP (http://).

    Forneça o mesmo nome de host e porta usados pela configuração do IIS especificada anteriormente, normalmente localhost.

    Forneça o nome do aplicativo no final da URL.

    Por exemplo, https://localhost/WebApplication1 (HTTPS) ou http://localhost/WebApplication1 (HTTP) são URLs de ponto de extremidade válidas.

  5. Na seção Variáveis de ambiente, selecione o botão Adicionar. Forneça uma variável de ambiente com um Nome de ASPNETCORE_ENVIRONMENT e um Valor de Development.

  6. Na área de Configurações do servidor Web, defina a URL do aplicativo com o mesmo valor usado para a URL de ponto de extremidade Iniciar navegador.

  7. Para a configuração de Modelo de hospedagem no Visual Studio 2019 ou posterior, selecione Padrão para usar o modelo de hospedagem usado pelo projeto. Se o projeto definir a propriedade <AspNetCoreHostingModel> no arquivo de projeto, o valor da propriedade (InProcess ou OutOfProcess) será usado. Se a propriedade não estiver presente, o modelo do aplicativo de hospedagem padrão será usado, que está em processo. Se o aplicativo exigir uma configuração explícita de modelo de hospedagem diferente da do modelo de hospedagem normal do aplicativo, defina o Modelo de hospedagem para In Process ou Out Of Process, conforme necessário.

  8. Salve o perfil.

Quando não estiver usando o Visual Studio, adicione manualmente um perfil de inicialização ao arquivo launchSettings.json na pasta Propriedades. O exemplo a seguir configura o perfil para usar o protocolo HTTPS:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iis": {
      "applicationUrl": "https://localhost/WebApplication1",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS": {
      "commandName": "IIS",
      "launchBrowser": true,
      "launchUrl": "https://localhost/WebApplication1",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Confirme se os pontos de extremidade applicationUrl e launchUrl correspondem e usam o mesmo protocolo que a configuração de associação do IIS, seja HTTP ou HTTPS.

Executar o projeto

Execute o Visual Studio como um administrador:

  • Confirme se a lista de lista suspensa de configuração de compilação está definida para Depurar.
  • Defina o botão Iniciar Depuração para o perfil do IIS e selecione o botão para iniciar o aplicativo.

O Visual Studio poderá solicitar uma reinicialização se não estiver executando como administrador. Se solicitado, reinicie o Visual Studio.

Se for usado um certificado de desenvolvimento não confiável, o navegador poderá exigir a criação de uma exceção para o certificado não confiável.

Observação

A depuração de uma configuração de Compilação de versão com Apenas Meu Código e otimizações de compilador resulta em uma experiência inadequada. Por exemplo, os pontos de interrupção não são atingidos.

Recursos adicionais

Este artigo descreve o suporte do Visual Studio para a depuração de aplicativos do ASP.NET Core em execução com o IIS no Windows Server. Este tópico orienta como habilitar esse cenário e configurar um projeto.

Pré-requisitos

  • Visual Studio para Windows
  • Carga de trabalho ASP.NET e desenvolvimento para a Web
  • Carga de trabalho de desenvolvimento multiplataforma do .NET Core
  • Certificado de segurança X.509 (para o suporte a HTTPS)

Habilitar o IIS

  1. No Windows, navegue até Painel de Controle>Programas>Programas e Recursos>Ativar ou desativar recursos do Windows (lado esquerdo da tela).
  2. Marque a caixa de seleção Serviços de Informações da Internet. Selecione OK.

A instalação do IIS pode exigir uma reinicialização do sistema.

Configurar o IIS

O IIS deve ter um site configurado com o seguinte:

  • Nome do host Normalmente, o Site padrão é usado com um nome do Host de localhost. No entanto, qualquer site válido do IIS com um nome de host exclusivo funciona.
  • Associação do site
    • Para aplicativos que exijam HTTPS, crie uma associação à porta 443 com um certificado. Tipicamente, o Certificado de Desenvolvimento do IIS Express é usado, mas qualquer certificado válido funciona.
    • Para aplicativos que usam HTTP, confirme a existência de uma associação à porta 80 ou crie uma para um novo site.
    • Uso de uma associação simples para HTTP ou HTTPS. Não há suporte para a associação simultânea às portas HTTP e HTTPS.

Habilitar o suporte ao IIS no tempo de desenvolvimento no Visual Studio

  1. Inicie o Instalador do Visual Studio.

  2. Selecione Modificar para a instalação do Visual Studio que você planeja usar para o suporte de tempo de desenvolvimento do IIS.

  3. Para a carga de trabalho de desenvolvimento da web e ASP.NET, localize e instale o componente desuporte IIS ao tempo de desenvolvimento.

    O componente está listado na seção Opcional, em Suporte IIS ao tempo de desenvolvimento no painel Detalhes da instalação à direita das cargas de trabalho. O componente instala o Módulo do ASP.NET Core, que é um módulo nativo do IIS necessário para executar aplicativos ASP.NET Core com o IIS.

Configurar o projeto

Redirecionamento para HTTPS

Para um novo projeto que exija HTTPS, selecione a caixa de seleção para Configurar para HTTPS na janela Criar um novo Aplicativo Web ASP.NET Core. A marcação da caixa de seleção adiciona ao aplicativo um Redirecionamento de HTTPS e Middleware HSTS quando ele é criado.

Para um projeto existente que exija HTTPS, use o Redirecionamento de HTTPS e Middleware HSTS em Startup.Configure. Para saber mais, confira Impor HTTPS no ASP.NET Core.

Para um projeto que usa HTTP, o Redirecionamento de HTTPS e o Middleware HSTS não são adicionados ao aplicativo. Nenhuma configuração de aplicativo é necessária.

Perfil de inicialização do IIS

Crie um novo perfil de inicialização para adicionar suporte ao IIS no tempo de desenvolvimento:

  1. Clique com o botão direito do mouse no projeto em Gerenciador de Soluções. Selecione Propriedades. Abra a guia Depurar.

  2. Para Perfil, selecione o botão Novo. Nomeie o perfil "IIS" na janela pop-up. Selecione OK para criar o perfil.

  3. Para a configuração Iniciar, selecione IIS da lista.

  4. Selecione a caixa de seleção Iniciar navegador e forneça a URL de ponto de extremidade.

    Quando o aplicativo exigir HTTPS, use um ponto de extremidade HTTPS (https://). Para HTTP, use um ponto de extremidade HTTP (http://).

    Forneça o mesmo nome de host e porta usados pela configuração do IIS especificada anteriormente, normalmente localhost.

    Forneça o nome do aplicativo no final da URL.

    Por exemplo, https://localhost/WebApplication1 (HTTPS) ou http://localhost/WebApplication1 (HTTP) são URLs de ponto de extremidade válidas.

  5. Na seção Variáveis de ambiente, selecione o botão Adicionar. Forneça uma variável de ambiente com um Nome de ASPNETCORE_ENVIRONMENT e um Valor de Development.

  6. Na área de Configurações do servidor Web, defina a URL do aplicativo com o mesmo valor usado para a URL de ponto de extremidade Iniciar navegador.

  7. Para a configuração de Modelo de hospedagem no Visual Studio 2019 ou posterior, selecione Padrão para usar o modelo de hospedagem usado pelo projeto. Se o projeto definir a propriedade <AspNetCoreHostingModel> no arquivo de projeto, o valor da propriedade (InProcess ou OutOfProcess) será usado. Se a propriedade não estiver presente, o modelo do aplicativo de hospedagem padrão será usado, que está fora de processo. Se o aplicativo exigir uma configuração explícita de modelo de hospedagem diferente da do modelo de hospedagem normal do aplicativo, defina o Modelo de hospedagem para In Process ou Out Of Process, conforme necessário.

  8. Salve o perfil.

Quando não estiver usando o Visual Studio, adicione manualmente um perfil de inicialização ao arquivo launchSettings.json na pasta Propriedades. O exemplo a seguir configura o perfil para usar o protocolo HTTPS:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iis": {
      "applicationUrl": "https://localhost/WebApplication1",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS": {
      "commandName": "IIS",
      "launchBrowser": true,
      "launchUrl": "https://localhost/WebApplication1",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Confirme se os pontos de extremidade applicationUrl e launchUrl correspondem e usam o mesmo protocolo que a configuração de associação do IIS, seja HTTP ou HTTPS.

Executar o projeto

Execute o Visual Studio como um administrador:

  • Confirme se a lista de lista suspensa de configuração de compilação está definida para Depurar.
  • Defina o botão Iniciar Depuração para o perfil do IIS e selecione o botão para iniciar o aplicativo.

O Visual Studio poderá solicitar uma reinicialização se não estiver executando como administrador. Se solicitado, reinicie o Visual Studio.

Se for usado um certificado de desenvolvimento não confiável, o navegador poderá exigir a criação de uma exceção para o certificado não confiável.

Observação

A depuração de uma configuração de Compilação de versão com Apenas Meu Código e otimizações de compilador resulta em uma experiência inadequada. Por exemplo, os pontos de interrupção não são atingidos.

Recursos adicionais