Nível de página do ASP.NET TracDepuração, tratamento de erros

⚡ Resumo Inteligente

Depuração de ASP.NET, tracO processamento e o tratamento de erros no Visual Studio ajudam os desenvolvedores a detectar problemas precocemente e a acompanhar as solicitações até a conclusão. trace.axd, e redirecionar os usuários para páginas de erro personalizadas quando ocorrerem exceções não tratadas durante o ciclo de vida de desenvolvimento e produção.

  • 🐞 Depuração: Os pontos de interrupção no Visual Studio pausam a execução para que você possa inspecionar uma página ASP.NET em execução, linha por linha.
  • 🔎 Tracing: Possibilitando trace em web.config adiciona trace.axd, que lista cada solicitação, seu código de status e o tempo de execução.
  • 📄 Página Tracing: Adicionando TracO atributo e="true" na diretiva Page define o tempo do ciclo de vida de uma única página.
  • 🚧 Erros personalizados: A tag customErrors redireciona os usuários para uma página de erro amigável quando o aplicativo apresenta falhas.
  • 🧭 Exceções não tratadas: O evento Application_Error no arquivo Global.asax captura erros inesperados e redireciona para uma página segura.
  • 🗃️ Registro de erros: Escrever os detalhes de Server.GetLastError em um arquivo registra os problemas para depuração posterior.

Nível de página ASP.NET Tracing, depuração e tratamento de erros

Em qualquer aplicativo, erros ocorrerão durante o processo de desenvolvimento. É importante ser capaz de descobrir erros numa fase inicial.

No Visual Studio, é possível fazer isso para aplicações ASP.NET. O Visual Studio é usado para depuração e possui técnicas de tratamento de erros para ASP.NET.

O que é depuração em ASP.NET?

depuração É o processo de adicionar pontos de interrupção a uma aplicação. Esses pontos de interrupção são usados ​​para pausar a execução de um programa em andamento. Isso permite que o desenvolvedor entenda o que está acontecendo no programa em um determinado momento.

Vamos considerar um exemplo de um programa. O programa exibe a mensagem "Estamos depurando" para o usuário. Suponha que, ao executarmos o aplicativo, por algum motivo, a mensagem não seja exibida. Para identificar o problema, precisamos adicionar um ponto de interrupção (breakpoint). Podemos adicionar um ponto de interrupção na linha de código que exibe a mensagem. Esse ponto de interrupção pausará a execução do programa. Nesse momento, o programador poderá ver o que possivelmente está dando errado e corrigir o programa de acordo.

Neste exemplo, usaremos o aplicativo de demonstração (DemoApplication) que criamos em capítulos anteriores. No exemplo a seguir, veremos:

  • Como fazer o aplicativo de demonstração exibir uma string.
  • Como adicionar pontos de interrupção a um aplicativo.
  • Como depurar o aplicativo usando este ponto de interrupção.

Como depurar um aplicativo em ASP.NET

A seguir estão os passos para criar uma aplicação de demonstração, adicionar pontos de interrupção e depurar em ASP.NET:

Passo 1) Abra o aplicativo no Visual Studio.
Primeiro, vamos garantir que nosso aplicativo web esteja aberto no Visual Studio. Certifique-se de que o DemoApplication esteja aberto no Visual Studio.

Depurar um aplicativo em ASP.NET

Etapa 2) Agora abra o arquivo Demo.aspx.cs e adicione a linha de código abaixo.

  • Estamos apenas adicionando a linha de código Response.Write para exibir uma string.
  • Portanto, quando o aplicativo for executado, ele deverá exibir a string “Estamos depurando” no navegador da web.

Depurar um aplicativo em ASP.NET

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write("We are debugging");
        }
    }
}

Passo 3) Adicione um ponto de interrupção ao aplicativo.
Um ponto de interrupção é um ponto no Visual Studio onde você deseja que a execução do programa pare.

Depurar um aplicativo em ASP.NET

  1. Para adicionar um ponto de interrupção, você precisa clicar na coluna onde deseja inseri-lo. No nosso caso, queremos que o programa pare na linha de código “Response.Write”. Não é necessário adicionar nenhum comando para inserir um ponto de interrupção. Basta clicar na linha onde deseja adicioná-lo.
  2. Feito isso, você notará que o código fica marcado em vermelho. Além disso, uma bolha vermelha aparece na coluna próxima à linha de código.

Observação: Você pode adicionar vários pontos de interrupção em um aplicativo.

Passo 4) Execute o aplicativo no modo de depuração.
Agora você precisa executar seu aplicativo usando o modo de depuração. No Visual Studio, escolha a opção de menu Debug->Start Debugging.

Depurar um aplicativo em ASP.NET

Resultado:-

Depurar um aplicativo em ASP.NET

Ao executar todas as etapas corretamente, a execução do programa será interrompida. O Visual Studio irá para o ponto de interrupção e marcará a linha de código em amarelo.

Agora, se o programador achar que o código está incorreto, a execução pode ser interrompida. O código pode então ser modificado de acordo. Para continuar com o programa, o programador precisa clicar no botão F5 do teclado.

O que é a TracEstá trabalhando com ASP.NET?

Aplicação tracing Permite verificar se alguma das páginas solicitadas resultou em erro. Quando tracSe o recurso estiver ativado, uma página extra chamada tracO arquivo e.axd foi adicionado ao aplicativo (veja a imagem abaixo). Esta página está vinculada ao aplicativo e exibirá todas as solicitações e seus respectivos status.

Tracing em ASP.NET

Como ativar Tracing para um aplicativo em ASP.NET

Vejamos como habilitar tracprocurando um aplicativo ASP.NET:

Passo 1) Vamos trabalhar em nosso aplicativo de demonstração. Abra o arquivo web.config no Explorador de Soluções.

Permitir tracing para uma aplicação em ASP.NET

Passo 2) Adicione a seguinte linha de código ao arquivo web.config. tracA declaração "e" é usada para habilitar tracing para o aplicativo.

  • O limite de solicitações no tracA declaração e especifica o número de solicitações de página que devem ser traced.
  • Em nosso exemplo, estamos definindo um limite de 40. Definimos um limite porque um valor maior prejudicará o desempenho do aplicativo.

Permitir tracing para uma aplicação em ASP.NET

<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
        <httpRuntime targetFramework="4.0" />

        <trace enabled="true" pageOutput="false" requestLimit="40" localOnly="false" />

    </system.web>
</configuration>

Execute o aplicativo de demonstração no Visual Studio.

Resultado:-

Permitir tracing para uma aplicação em ASP.NET

Se você navegar agora até o URL http://localhost:53003/trace.axdVocê verá as informações de cada solicitação. Aqui, você pode verificar se ocorreu algum erro em um aplicativo. Os seguintes tipos de informações são exibidos na página:

  1. A hora da solicitação da página da web.
  2. O nome da página web que está sendo solicitada.
  3. O código de status da requisição web (um código de status 200 significa que a requisição foi bem-sucedida).
  4. O link "Ver detalhes" permite visualizar mais informações sobre a solicitação web. Um detalhe importante fornecido são as informações do cabeçalho, que mostram quais informações são enviadas no cabeçalho de cada solicitação web.

Permitir tracing para uma aplicação em ASP.NET

Nível da página Tracing em ASP.NET

Nível da página Tracing Em ASP.NET, são exibidas todas as informações gerais sobre uma página da web enquanto ela está sendo processada. Isso é útil para depuração caso uma página não funcione por algum motivo. O Visual Studio fornece informações detalhadas sobre vários aspectos da página, como o tempo de execução de cada método chamado na requisição web.

Por exemplo, se o seu aplicativo web estiver apresentando problemas de desempenho, essas informações podem ajudar na depuração do problema. Essas informações são exibidas quando o aplicativo é executado no Visual Studio.

Como ativar Tracing no nível da página em ASP.NET

Vamos ver como habilitar o nível da página tracpara uma aplicação ASP.NET:

Passo 1) Vamos trabalhar em nosso aplicativo de demonstração. Abra o arquivo demo.aspx no Explorador de Soluções.

Nível da página Tracing em ASP.NET

Passo 2) Adicione a linha de código abaixo para habilitar a página. tracNa declaração da página, basta adicionar o atributo. Trace="true". Esta linha de código permitirá o nível da página. tracing.

Nível da página Tracing em ASP.NET

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" Trace="true" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    </form>
</body>
</html>

Execute o aplicativo no Visual Studio.

Resultado:-

Nível da página Tracing em ASP.NET

Agora, quando a página Demo.aspx for exibida, você obterá muitas informações sobre a página. Informações como o tempo para cada aspecto do ciclo de vida da página são exibidas nesta página.

Tratamento de erros: exibindo uma página de erro personalizada

In ASP.NET, você poderá exibir páginas de erro personalizadas para os usuários. Se um aplicativo contiver algum tipo de erro, uma página personalizada exibirá esse erro ao usuário.

Em nosso exemplo, primeiro adicionaremos uma página HTML. Esta página exibirá a mensagem ao usuário: "Estamos investigando o problema". Em seguida, adicionaremos um código de erro à nossa página demo.aspx para que a página de erro seja exibida. Vamos seguir os passos mencionados abaixo.

Passo 1) Vamos trabalhar em nosso aplicativo de demonstração. Vamos adicionar uma página HTML ao aplicativo.

  1. Clique com o botão direito do mouse no DemoApplication no Solution Explorer.
  2. Selecione a opção de menu Adicionar -> Página HTML.

Tratamento de erros em ASP.NET

Passo 2) Na próxima etapa, precisamos fornecer um nome para a nova página HTML.

  1. Forneça o nome como ErrorPage.
  2. Clique no botão OK para prosseguir.

Tratamento de erros em ASP.NET

Passo 3) A página de erro será aberta automaticamente no Visual Studio. Se você acessar o Solution Explorer, verá o arquivo adicionado.

Tratamento de erros em ASP.NET

Adicione a linha de código “Estamos investigando o problema” à página HTML. Não é necessário fechar o arquivo HTML antes de fazer a alteração no arquivo web.config.

Tratamento de erros em ASP.NET

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    We are looking into the problem
</body>
</html>

Passo 4) Agora você precisa fazer uma alteração no arquivo web.config. Essa alteração notificará que, sempre que ocorrer um erro no aplicativo, a página de erro personalizada deverá ser exibida. A tag customErrors permite definir uma página de erro personalizada. A propriedade defaultRedirect é definida com o nome da nossa página de erro personalizada criada na etapa anterior.

Tratamento de erros em ASP.NET

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

        <customErrors mode="On" defaultRedirect="ErrorPage.html">
        </customErrors>

    </system.web>
</configuration>

Passo 5) Agora, vamos adicionar um código com erros à página demo.aspx.cs. Abra esta página clicando duas vezes no arquivo no Explorador de Soluções.

Tratamento de erros em ASP.NET

Adicione o código abaixo ao arquivo Demo.aspx.cs.

  • Essas linhas de código foram projetadas para ler as linhas de texto de um arquivo.
  • O arquivo deve estar localizado na unidade D com o nome Example.txt.
  • Mas na nossa situação, esse arquivo realmente não existe. Portanto, esse código resultará em um erro quando o aplicativo for executado.

Tratamento de erros em ASP.NET

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            String path = @"D:\Example.txt";
            string[] lines;
            lines = File.ReadAllLines(path);
        }
    }
}

Agora execute o código em Visual Studio e você deve obter a saída abaixo.

Resultado:-

Tratamento de erros em ASP.NET

A página acima mostra que ocorreu um erro no aplicativo. Como resultado, a página ErrorPage.html é exibida para o usuário.

Exceção não tratada do ASP.NET

Mesmo nos melhores cenários, podem ocorrer erros imprevisíveis. Suponha que um usuário acesse a página errada do aplicativo. Isso é algo que não pode ser previsto. Nesses casos, o ASP.NET pode redirecionar o usuário para a página ErrorPage.html.

Vejamos um exemplo disso.

  • Vamos usar a mesma DemoApplication que possui o arquivo ErrorPage.html.
  • E tentaremos visualizar uma página web que não existe em nossa aplicação.
  • Nesse caso, devemos ser redirecionados para a nossa página ErrorPage.html. Vejamos os passos para conseguir isso.

Passo 1) Vamos trabalhar em nosso aplicativo de demonstração. Abra o arquivo Global.asax.cs no Explorador de Soluções.

Exceção não tratada do ASP.NET

Observação: O arquivo Global.asax.cs é usado para adicionar código que será aplicável em todas as páginas do aplicativo.

Passo 2) Adicione a linha de código abaixo ao arquivo Global.asax.cs. Essas linhas serão usadas para verificar erros e exibir a página ErrorPage.html de acordo.

Exceção não tratada do ASP.NET

namespace DemoApplication
{
    public class Global : System.Web.HttpApplication
    {
        protected void Application_Error(object sender, EventArgs e)
        {
            HttpException lastErrorWrapper = Server.GetLastError() as HttpException;

            if (lastErrorWrapper.GetHttpCode() == 404)
                Server.Transfer("~/ErrorPage.html");
        }
    }
}

Code Explicação:-

  1. A primeira linha é o manipulador de eventos Application_Error. Esse evento é acionado sempre que ocorre um erro no aplicativo. Observe que o nome do evento deve ser Application_Error e os parâmetros devem ser como mostrado acima.
  2. A seguir, definimos um objeto do tipo de classe HttpException. Este é um objeto padrão que conterá todos os detalhes do erro. Em seguida, usamos o método Server.GetLastError para obter todos os detalhes do último erro que ocorreu na aplicação.
  3. Em seguida, verificamos se o código de erro do último erro é 404 (o código de erro 404 é o código padrão retornado quando um usuário tenta acessar uma página que não foi encontrada). Se o código de erro corresponder, redirecionamos o usuário para a página ErrorPage.html.

Agora execute o código no Visual Studio e você deverá obter a saída abaixo.

Resultado:-

Navegue pela página http://localhost:53003/Demo1.aspx. Lembre-se que Demo1.aspx não existe em nossa aplicação. Você obterá então a saída abaixo.

Exceção não tratada no ASP.NET

A página acima mostra que ocorreu um erro no aplicativo. Como resultado, a página ErrorPage.html é exibida para o usuário.

Registro de erros do ASP.NET

Ao registrar erros da aplicação, o desenvolvedor pode depurar e resolver o problema posteriormente. O ASP.NET possui um recurso para registrar erros. Isso é feito no arquivo Global.asax.cs quando o erro é capturado. Durante o processo de captura, a mensagem de erro pode ser gravada em um arquivo de log.

Vejamos um exemplo disso.

  • Vamos usar a mesma DemoApplication que possui o arquivo ErrorPage.html.
  • E tentaremos visualizar uma página web que não existe em nossa aplicação.
  • Devemos ser redirecionados para nossa página ErrorPage.html neste caso.
  • E, ao mesmo tempo, vamos registrar a mensagem de erro em um arquivo de log. Vejamos os passos para realizar isso.

Passo 1) Vamos trabalhar em nosso aplicativo de demonstração. Abra o arquivo Global.asax.cs no Explorador de Soluções.

Registro de erros do ASP.NET

Passo 2) Adicione a linha de código abaixo ao arquivo Global.asax.cs. Ela verificará erros e exibirá a página ErrorPage.html de acordo. Além disso, simultaneamente, registraremos os detalhes do erro em um arquivo chamado AllErrors.txt. Para o nosso exemplo, escreveremos um código para que este arquivo seja criado na unidade D.

Registro de erros do ASP.NET

namespace DemoApplication
{
    public class Global : System.Web.HttpApplication
    {
        protected void Application_Error(object sender, EventArgs e)
        {
            Exception exc = Server.GetLastError();
            String str = "";
            str = exc.Message;

            String path = @"D:\AllErrors.txt";
            File.WriteAllText(path, str);
            Server.Transfer("~/ErrorPage.html");
        }
    }
}

Code Explicação:-

  1. A primeira linha serve para obter o próprio erro usando o método Server.GetLastError. Em seguida, esse erro é atribuído à variável exc.
  2. Em seguida, criamos uma variável de string vazia chamada `str`. Obtemos a mensagem de erro real usando a propriedade `exc.Message`. A propriedade `exc.Message` conterá a mensagem exata para qualquer erro que ocorra durante a execução do aplicativo. Essa mensagem é então atribuída à variável de string.
  3. Em seguida, definimos o arquivo chamado AllErrors.txt. É para ele que todas as mensagens de erro serão enviadas. Escrevemos a string str, que contém todas as mensagens de erro, nesse arquivo.
  4. Por fim, transferimos o usuário para o arquivo ErrorPage.html.

Resultado:-

Navegue pela página http://localhost:53003/Demo1.aspx. Lembre-se que Demo1.aspx não existe em nossa aplicação. Você obterá então a saída abaixo.

Registro de erros do ASP.NET

E, ao mesmo tempo, se você abrir o arquivo AllErrors.txt, verá as informações abaixo.

Registro de erros do ASP.NET

A mensagem de erro pode então ser repassada ao desenvolvedor posteriormente para fins de depuração.

Perguntas Frequentes

Sim. Ferramentas de IA como o GitHub Copilot podem sugerir pontos de interrupção, explicar uma exceção e propor correções para o código ASP.NET. RevAnalise cada sugestão e reproduza o erro você mesmo, já que a IA pode interpretar incorretamente o estado específico da aplicação.

Sim. Recursos de aprendizado de máquina em ferramentas como Azure O Application Insights pode sinalizar automaticamente picos incomuns de exceções ou solicitações lentas. Isso ajuda as equipes a encontrar problemas de produção mais rapidamente do que analisando arquivos de log brutos manualmente.

Não. Desativar o modo customErrors expõe a pilha de erros. tracExclui informações confidenciais e detalhes sensíveis de todos os visitantes, o que representa um risco de segurança. Use o modo RemoteOnly ou On em produção para que apenas os desenvolvedores locais vejam os detalhes completos do erro.

O RemoteOnly exibe páginas de erro detalhadas apenas para navegadores no servidor local, enquanto usuários remotos são redirecionados para a página defaultRedirect. É uma solução intermediária segura para depurar um site em produção sem expor informações confidenciais.

Defina `debug="false"` no elemento `compilation` do arquivo `web.config`. O modo de depuração desativa otimizações, aumenta os tempos limite e amplia o uso de memória; portanto, sites em produção devem sempre ser distribuídos com ele desativado. Visual Studio.

Não. Um aberto tracO arquivo e.axd pode revelar cabeçalhos, sessão e variáveis ​​de servidor para atacantes. Defina localOnly="true" ou desative-o. traccompletamente antes da implantação, então tracOs dados nunca são expostos a usuários remotos.

Server.Transfer encaminha a solicitação para a página de erro no servidor sem alterar o navegador. URL ou fazendo uma viagem de ida e volta. Response.Redirect envia uma nova solicitação ao navegador, atualizando o URL para a página de erro.

Capturar a mensagem de exceção, pilha de chamadas trace, solicitado URL, carimbo de data/hora e contexto do usuário. Esses detalhes permitem que os desenvolvedores reproduzam a falha posteriormente. O método `Server.GetLastError` em `Application_Error` expõe a exceção para que você possa gravá-la em um arquivo ou banco de dados.

Resuma esta postagem com: