Partilhar 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ê executá-lo no IIS Express ou em um servidor IIS local.

Observação

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 Processoe ignora essas configurações. Para obter mais informações e instruções para depuração remota de ASP.NET e ASP.NET Core, consulte Depurar remotamente o ASP.NET Core num computador IIS remotoe Depurar remotamente o serviço de aplicações do Azure.

Os servidores Kestrel e IIS Express internos estão incluídos no Visual Studio. O Kestrel é o servidor de depuração padrão para projetos ASP.NET Core e está 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 está pré-configurado. É a maneira mais fácil de depurar e ideal para depuração e testes 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 não estiver instalado, instale a carga de trabalho de ASP.NET e desenvolvimento 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 a(s) versão(ões) apropriada(s) 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 os módulos ASP.NET.

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

Depurar aplicativos ASP.NET Core

Um perfil padrão chamado https ou um baseado no nome do projeto pode estar presente, que são configurados para o servidor web Kestrel. Se, em vez disso, estiver a depurar no IIS local, certifique-se de que cumpre os 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+Enterou clique com o botão direito do mouse e escolha Propriedades.

  2. Selecione a guia Debug e clique no link para abrir a interface de utilizador Abrir perfis de inicialização de depuração.

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

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

    • Para Kestrel, selecione o perfil https ou o perfil cujo nome é o 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 da Aplicaçãoe URL SSL da Aplicação estão corretos.

    URL especifica o local da URL do host para .NET Core ou .NET 5+. Para um perfil nomeado com o nome do projeto (ou seja, a propriedade commandName em 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 Perfil de inicialização do IIS em Configurar o projeto.

    URL da Aplicação e URL SSL da Aplicação especificam a(s) URL(s) da aplicação.

    • 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 geralmente são http://localhost:5000 e https://localhost:5001.
    • Para o IIS Express, a URL SSL do Aplicativo normalmente é https://localhost:44334.
  6. Em Variáveis de ambiente, certifique-se de que ASPNETCORE_ENVIRONMENT está presente com um valor de Desenvolvimento. Caso contrário, adicione a variável.

    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 Debug.

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

Depurar aplicativos ASP.NET Core

O IIS Express é o padrão e está pré-configurado. Se estiver a depurar no IIS Local, certifique-se de que cumpre os 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.

  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. Verifique se Iniciar navegador está selecionado.

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

    pt-PT: Configurações do depurador do ASP.NET Core

  7. Use Arquivo>Salvar Itens Selecionados ou Ctrl+S para salvar as 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 Debuge IIS Expressou o novo nome do perfil do IIS aparece no campo do emulador.

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

Depurar aplicativos ASP.NET

O IIS Express é o padrão e está pré-configurado. Se estiver a fazer depuração no IIS local, certifique-se de que cumpre os requisitos para depuração no IIS local.

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

  2. Selecione a guia Web.

    Se não vir o separador Web, consulte Depurar ASP.NET aplicações principais. A guia Web só aparece para ASP.NET Framework.

  3. No painel Propriedades, em Servidores,

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

    Captura de ecrã que mostra configurações do depurador 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 Debuge 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 (<Nome do navegador>) ou IIS Local (<Nome do navegador>) na barra de ferramentas, selecione Iniciar Depuração no menu de Depuração ou pressione F5. O depurador pausa nos pontos de interrupção. Se o depurador não conseguir atingir os pontos de interrupção, consulte Solucionar problemas de depuração.

Solucionar problemas de depuração

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

  1. Inicie a aplicação Web a partir do IIS e certifique-se de que é executada corretamente. Deixe o aplicativo Web em execução.

  2. No Visual Studio, selecione Depurar > Anexar a 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, consulte Anexar ao Processo e Como encontrar o nome do processo do ASP.NET.

Se conseguir ligar-se e atingir o ponto de interrupção usando Anexar ao Processo, mas não usando Depuração>Iniciar a Depuração ou F5, alguma definição está provavelmente incorreta nas propriedades do projeto. Se você usar um arquivo HOSTS, verifique se ele também está configurado corretamente.

Configurar a depuração no arquivo web.config

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

Observação

ASP.NET projetos principais inicialmente não têm arquivos web.config, mas usam arquivos appsettings.json e launchSettings.json para configuração do aplicativo e informações de inicialização. A implantação do aplicativo cria um arquivo ou 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. Antes de tentar depurar, certifique-se de que o web.config esteja configurado para depuração.

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

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

  2. Web.config é um arquivo XML, portanto, contém seções aninhadas marcadas por tags. 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 exemplo a seguir:

    Observação

    Este exemplo é um arquivo de web.config parcial. Normalmente, 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 deteta automaticamente quaisquer alterações em web.config arquivos e aplica as novas definições de configuração. Não é necessário 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 web.config arquivos em cada um. ASP.NET aplicativos herdam definições de configuração de arquivos web.config em níveis mais altos no caminho da URL. As definições do arquivo hierárquico web.config aplicam-se a todas as aplicações ASP.NET na sua hierarquia. Definir uma configuração diferente em um arquivo 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 do aaa herda essa configuração, exceto se um desses aplicativos substituir a configuração por 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 medições de desempenho, defina debug="false" no web.config e especifique uma compilação de versão.