Compartilhar via


Depurar aplicativos ASP.NET ou ASP.NET Core no Visual Studio

Você pode depurar aplicativos ASP.NET e ASP.NET Core no Visual Studio. O processo difere entre ASP.NET e ASP.NET Core e se você o executa no IIS Express ou em um servidor IIS local.

Nota

As etapas e configurações a seguir se aplicam somente à depuração de aplicativos em um servidor local. A depuração de aplicativos em um servidor IIS remoto usa Anexar ao Processo e ignora essas configurações. Para obter mais informações e instruções sobre depuração remota de ASP.NET e ASP.NET Core, consulte Depuração remota do ASP.NET Core em um computador IIS remotoe Depuração remota do Serviço de Aplicativo do Azure.

Os servidores Kestrel e IIS Express internos estão incluídos no Visual Studio. Kestrel é o servidor de depuração padrão para projetos do ASP.NET Core e é pré-configurado. O IIS Express é o servidor de depuração padrão para ASP.NET.

O servidor IIS Express interno está incluído no Visual Studio. O IIS Express é o servidor de depuração padrão para projetos ASP.NET e ASP.NET Core e é pré-configurado. É a maneira mais fácil de depurar e ideal para depuração e teste iniciais.

Para ASP.NET Core, você também pode depurar no servidor Web Kestrel.

Pré-requisitos para o servidor IIS local

Você também pode depurar um aplicativo ASP.NET ou ASP.NET Core em um servidor IIS local (versão 8.0 ou superior) configurado para executar o aplicativo. Para depurar no IIS local, você deve atender aos seguintes requisitos:

  • Se ele não estiver instalado, instale o ASP.NET e a carga de trabalho de desenvolvimento na Web. (Execute novamente o Instalador do Visual Studio, selecione Modificare adicione esta carga de trabalho.)

  • Execute o Visual Studio como administrador.

  • Instale e configure corretamente o IIS com as versões apropriadas do ASP.NET e/ou ASP.NET Core. Para obter mais informações sobre como usar o IIS com o ASP.NET Core, consulte Host ASP.NET Core no Windows com o IIS. Para ASP.NET, consulte Instalar o IIS e ASP.NET Modules.

  • Verifique se o aplicativo é executado no IIS e é aberto no navegador.

Depurar aplicativos do ASP.NET Core

Um perfil padrão chamado https ou um com base no nome do projeto pode estar presente, configurado para o servidor Web Kestrel. Caso esteja depurando no IIS local, garanta atender aos pré-requisitos para a depuração do IIS local.

  1. Selecione o projeto ASP.NET Core no Visual Studio Solution Explorer e clique no ícone Propriedades ou pressione Alt+Enter, ou clique com o botão direito do mouse e escolha Propriedades.

  2. Selecione a guia Depurar e clique no link para abrir a interface do usuário Abrir perfis de inicialização de depuração.

    A interface do usuário apresentada corresponde às configurações no arquivo de launchSettings.json do projeto. Para obter mais informações sobre esse arquivo, consulte a seção Desenvolvimento e launchSettings.json no Usar vários ambientes no ASP.NET Core.

  3. Selecione o perfil a ser configurado para depuração.

    • Para o kestrel, selecione o perfil https ou o perfil com o nome do projeto.
    • Para IIS Express, selecione IIS Express na lista suspensa.
    • Para o IIS local, selecione Novo e crie um novo perfil do IIS.
  4. Verifique se Iniciar navegador está selecionado.

  5. Certifique-se de que URL, URL do aplicativoe URL SSL do aplicativo estejam corretos.

    URL especifica o local da URL do host para .NET Core ou .NET 5+. Para um perfil com o nome do projeto (ou seja, a propriedade commandName no launchSettings.json é Project), o servidor Kestrel escuta a porta especificada. Para um perfil do IIS, esse normalmente é o mesmo valor que a URL do aplicativo . Para obter mais informações, consulte a seção de perfil de inicialização do IIS em Configurar o projeto.

    A URL do aplicativo e a URL SSL do aplicativo especificam as URLs do aplicativo.

    • Para um perfil https, a propriedade URL do Aplicativo normalmente é https://localhost:7241;http://localhost:5175.
    • Para um perfil com o nome do projeto, essas propriedades normalmente são http://localhost:5000 e https://localhost:5001.
    • Para o IIS Express, a URL do SSL do aplicativo normalmente é https://localhost:44334.
  6. Em Variáveis de ambiente, verifique se ASPNETCORE_ENVIRONMENT está presente com um valor de Desenvolvimento. Caso contrário, adicione a variável.

    configurações do depurador do Configurações do depurador do ASP.NET Core

    Para obter mais informações sobre variáveis de ambiente, consulte Environments.

  7. Para depurar o aplicativo, em seu projeto, defina pontos de interrupção em algum código. Na barra de ferramentas do Visual Studio, verifique se a configuração está definida como Depurar.

  8. Para iniciar a depuração, selecione o nome do perfil na barra de ferramentas, como as https, IIS Express ou <nome de perfil do IIS> na barra de ferramentas, selecione Iniciar Depuração no menuDepurar ou pressione F5. O depurador faz uma pausa nos pontos de interrupção. Se o depurador não conseguir atingir os pontos de interrupção, confira Solucionar problemas de depuração.

Depurar aplicativos do ASP.NET Core

O IIS Express é o padrão e é pré-configurado. Se você estiver depurando no IIS Local, atenda aos requisitos de depuração do IIS local.

  1. Selecione o projeto ASP.NET Core no Visual Studio Solution Explorer e clique no ícone Propriedades ou pressione Alt+Enter, ou clique com o botão direito do mouse e escolha Propriedades.

  2. Selecione a guia Depurar.

  3. No painel Propriedades, ao lado de Perfil,

    • Para IIS Express, selecione IIS Express na lista suspensa.
    • Para o IIS local, selecione o nome do aplicativo na lista suspensa ou selecione Novo, crie um novo nome de perfil e selecione OK.
  4. Ao lado de Iniciar, selecione IIS Express ou IIS na lista suspensa.

  5. Certifique-se de que a opção Lançar navegador esteja selecionada.

  6. Em Variáveis de ambiente, verifique se ASPNETCORE_ENVIRONMENT está presente com um valor de Desenvolvimento. Caso contrário, selecione Adicionar e adicione-o.

    Configurações do depurador do ASP.NET Core

  7. Use Arquivo>Salvar Itens Selecionados ou Ctrl+S para salvar quaisquer alterações.

  8. Para depurar o aplicativo, em seu projeto, defina pontos de interrupção em algum código. Na barra de ferramentas do Visual Studio, verifique se a configuração está definida como Debug, e IIS Express, ou o novo nome de perfil do IIS, aparece no campo emulador.

  9. Para iniciar a depuração, selecione IIS Express ou <nome de perfil do IIS> na barra de ferramentas, selecione Iniciar Depuração no menu Depuração ou pressione F5. O depurador faz uma pausa nos pontos de interrupção. Se o depurador não conseguir atingir os pontos de interrupção, confira Solucionar problemas de depuração.

Depurar aplicativos ASP.NET

O IIS Express é o padrão e é pré-configurado. Se você estiver depurando no IIS Local, atenda aos requisitos de depuração do IIS local.

  1. Selecione o projeto ASP.NET no Visual Studio Gerenciador de Soluções e clique no ícone Propriedades, pressione Alt+Enter ou clique com o botão direito e escolha Propriedades.

  2. Selecione a guia Web .

    Se você não vir a guia Web, confira Depurar aplicativos ASP.NET Core. A guia Web aparece apenas para ASP.NET Framework.

  3. No painel Propriedades, em Servidores,

    • Para o Kestrel, selecione https, na lista suspensa.
    • Para IIS Express, selecione IIS Express na lista suspensa.
    • Para o IIS local,
      1. Selecione IIS Local na lista suspensa.
      2. Ao lado do campo de URL do Projeto, selecione Criar Diretório Virtual, se ainda não tiver configurado o aplicativo no IIS.
  4. Em Depuradores, selecione ASP.NET.

    Captura de tela que mostra as configurações do depurador do ASP.NET.

  5. Escolha Arquivo>Salvar Itens Selecionados (ou pressione Ctrl+S) para salvar as alterações.

  6. Para depurar o aplicativo, em seu projeto, defina pontos de interrupção em algum código. Na barra de ferramentas do Visual Studio, verifique se a configuração está definida como Depuração e se o navegador desejado aparece em IIS Express (<Nome do navegador>) ou IIS Local (<Nome do navegador>) no campo do emulador.

  7. Para iniciar a depuração, selecione IIS Express (<Browser name>) ou Local IIS (<Browser name>) na barra de ferramentas, selecione Iniciar Depuração do menu Depurar ou pressione F5. O depurador faz uma pausa nos pontos de interrupção. Se o depurador não conseguir atingir os pontos de interrupção, confira Solucionar problemas de depuração.

Solucionar problemas de depuração

Se a depuração do IIS local não puder progredir para o ponto de interrupção, execute estas etapas para solucionar problemas.

  1. Inicie o aplicativo Web do IIS e verifique se ele é executado corretamente. Deixe o aplicativo Web em execução.

  2. No Visual Studio, selecione Depurar > Anexar ao Processo ou pressione Ctrl+Alt+Pe conecte-se ao processo ASP.NET ou ASP.NET Core (normalmente w3wp.exe ou dotnet.exe). Para obter mais informações, confira Anexar ao Processo e Como localizar o nome do processo de ASP.NET.

Se você puder se conectar e atingir o ponto de interrupção usando Anexar ao Processo, mas não usando Depurar>Iniciar Depuração ou F5, uma configuração provavelmente estará incorreta nas propriedades do projeto. Se você usar um arquivo HOSTS, verifique se ele também está configurado corretamente.

Para habilitar a depuração no arquivo web.config

Projetos ASP.NET têm arquivos web.config como padrão, que contêm informações de configuração do aplicativo e de inicialização, incluindo configurações de depuração. Os arquivos web.config devem ser configurados corretamente para depuração. As configurações de Propriedades nas seções anteriores atualizam os arquivos web.config, mas você também pode configurá-los manualmente.

Nota

ASP.NET Projetos principais inicialmente não têm arquivos web.config, mas usam arquivos appsettings.json e launchSettings.json para informações de configuração e inicialização do aplicativo. A implantação do aplicativo cria um ou mais arquivos web.config no projeto, mas eles geralmente não contêm informações de depuração.

Dica

Seu processo de implantação pode atualizar as configurações de web.config, portanto, antes de tentar depurar, verifique se web.config está configurado para depuração.

Para configurar manualmente um arquivo web.config para depuração:

  1. No Visual Studio, abra o arquivo web.config do projeto ASP.NET.

  2. Web.config é um arquivo XML, portanto, contém seções aninhadas marcadas por marcas. Localize a seção configuration/system.web/compilation. (Se o elemento compilation não existir, crie-o.)

  3. Verifique se o atributo debug no elemento compilation está definido como true. (Se o elemento compilation não contiver um atributo debug, adicione-o e defina-o como true.)

    Se você estiver usando o IIS local em vez do servidor IIS Express padrão, verifique se o valor do atributo targetFramework no elemento compilation corresponde à estrutura no servidor IIS.

    O elemento compilation do arquivo web.config deve ser semelhante ao seguinte exemplo:

    Nota

    Este exemplo é um arquivo de web.config parcial. Geralmente, há seções XML adicionais nos elementos configuration e system.web, e o elemento compilation também pode conter outros atributos e elementos.

    <configuration>
       ...
       <system.web>
           <compilation  debug="true"  targetFramework="4.6.1" ... >
              ...
           </compilation>
       </system.web>
    </configuration>
    

ASP.NET detecta automaticamente as alterações nos arquivos web.config e aplica as novas configurações. Você não precisa reiniciar o computador ou o servidor IIS para que as alterações entrem em vigor.

Um site pode conter vários diretórios virtuais e subdiretórios, com arquivos web.config em cada um deles. ASP.NET aplicativos herdam as configurações de arquivos web.config em níveis mais altos no caminho da URL. As configurações do arquivo hierárquico web.config se aplicam a todos os aplicativos ASP.NET situados abaixo deste na hierarquia. Definir uma configuração diferente em um arquivo de web.config inferior na hierarquia substitui as configurações no arquivo superior.

Por exemplo, se você especificar debug="true" no www.microsoft.com/aaa/web.config, qualquer aplicativo na pasta aaa ou em qualquer subpasta de aaa herdará essa configuração, exceto se um desses aplicativos substituir a configuração com seu próprio arquivo web.config.

Importante

O modo de depuração reduz consideravelmente o desempenho do seu aplicativo. Ao implantar um aplicativo de produção ou realizar medidas de desempenho, defina debug="false" no web.config e especifique um build de versão.