Уровень страницы Asp.Net Tracотладка, обработка ошибок
⚡ Умное резюме
Отладка ASP.NET tracОбработка ошибок и синхронизация в Visual Studio помогают разработчикам выявлять проблемы на ранних стадиях и отслеживать запросы. trace.axd, а также перенаправлять пользователей на пользовательские страницы ошибок при возникновении необработанных исключений в процессе разработки и производства.
В любом приложении в процессе разработки обязательно возникают ошибки. Важно уметь обнаруживать ошибки на ранней стадии.
В Visual Studio это можно сделать для приложений ASP.NET. Visual Studio используется для отладки и имеет методы обработки ошибок для ASP.NET.
Что такое отладка в ASP.NET?
Отладка Это процесс добавления точек останова в приложение. Эти точки останова используются для приостановки выполнения запущенной программы. Это позволяет разработчику понять, что происходит в программе в определенный момент времени.
Рассмотрим пример программы. Программа отображает пользователю строку «Мы отлаживаем». Предположим, что при запуске приложения по какой-то причине эта строка не отображается. Чтобы выявить проблему, нам нужно добавить точку останова. Мы можем добавить точку останова в строку кода, которая отображает строку. Эта точка останова приостановит выполнение программы. В этот момент программист сможет увидеть, что, возможно, идет не так. Программист исправляет программу соответствующим образом.
В этом примере мы будем использовать наше демонстрационное приложение (DemoApplication), созданное в предыдущих главах. В следующем примере мы увидим:
- Как заставить демонстрационное приложение отображать строку.
- Как добавить точки останова в приложение.
- Как отлаживать приложение с помощью этой точки останова.
Как отлаживать приложение в ASP.NET
Ниже описаны шаги по созданию демонстрационного приложения, добавлению точек останова и отладке в ASP.NET:
Шаг 1) Откройте приложение в Visual Studio.
Для начала убедимся, что наше веб-приложение открыто в Visual Studio. Убедитесь, что DemoApplication открыто в Visual Studio.
Шаг 2) Теперь откройте файл Demo.aspx.cs и добавьте строку кода ниже.
- Мы просто добавляем строку кода Response.Write для отображения строки.
- Поэтому, когда приложение запускается, в веб-браузере должна отображаться строка «Мы проводим отладку».
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Write("We are debugging"); } } }
Шаг 3) Добавьте точку останова в приложение.
Точка останова — это точка в Visual Studio, где вы хотите остановить выполнение программы.
- Чтобы добавить точку останова, нужно щелкнуть по столбцу, в котором вы хотите ее установить. В нашем случае мы хотим, чтобы наша программа остановилась на строке кода «Response.Write». Для добавления точки останова не нужно добавлять никаких команд. Достаточно просто щелкнуть по строке, на которой вы хотите установить точку останова.
- Как только это будет сделано, вы заметите, что код отмечен красным. Кроме того, в столбце рядом со строкой кода появляется красный пузырь.
Примечание: В приложении можно добавить несколько точек останова.
Шаг 4) Запустите приложение в режиме отладки.
Теперь вам нужно запустить приложение в режиме отладки. В Visual Studio выберите пункт меню «Отладка» -> «Начать отладку».
Выход:-
При правильном выполнении всех шагов выполнение программы прервется. Visual Studio перейдет к точке останова и отметит строку кода желтым цветом.
Теперь, если программист почувствует, что код некорректен, выполнение можно остановить. Затем код можно изменить соответствующим образом. Для продолжения работы программы программисту необходимо нажать кнопку F5 на клавиатуре.
Что такое TracВнедрение ASP.NET?
Области применения tracИНГ Это позволяет увидеть, если при запросе какой-либо страницы возникает ошибка. tracвключена дополнительная страница под названием tracФайл e.axd добавлен в приложение (см. изображение ниже). Эта страница прикреплена к приложению и будет отображать все запросы и их статус.
Как включить Tracразработка приложения на ASP.NET
Давайте посмотрим, как это включить. tracдля Приложение ASP.NET:
Шаг 1) Давайте займемся нашим демонстрационным приложением. Откройте файл web.config в обозревателе решений.
Шаг 2) Добавьте следующую строку кода в файл web.config. tracОператор e используется для включения tracподача заявки.
- requestLimit в tracВ указанном операторе задается количество запросов страниц, которые должны быть выполнены. tracредактор
- В нашем примере мы устанавливаем ограничение в 40. Мы устанавливаем ограничение, потому что более высокое значение ухудшит производительность приложения.
<?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>
Запустите демонстрационное приложение в Visual Studio.
Выход:-
Если вы теперь перейдете к URL http://localhost:53003/trace.axdЗдесь вы увидите информацию по каждому запросу. Вы также можете проверить наличие ошибок в приложении. На странице отображается следующая информация:
- Время запроса веб-страницы.
- Название запрашиваемой веб-страницы.
- Код состояния веб-запроса (код состояния 200 означает, что запрос выполнен успешно).
- Ссылка «Просмотреть подробности» позволяет просмотреть более подробную информацию о веб-запросе. Важным моментом является информация заголовка, которая показывает, какие данные отправляются в заголовке каждого веб-запроса.
Уровень страницы Tracвнедрение в ASP.NET
Уровень страницы TracИНГ В ASP.NET отображается вся общая информация о веб-странице во время её обработки. Это полезно при отладке, если страница по какой-либо причине не работает. Visual Studio предоставляет подробную информацию о различных аспектах страницы, таких как время выполнения каждого метода, вызываемого в веб-запросе.
Например, если у вашего веб-приложения возникли проблемы с производительностью, эта информация может помочь в отладке. Эти данные отображаются при запуске приложения в Visual Studio.
Как включить Tracвнедрение на уровне страницы в ASP.NET
Давайте рассмотрим, как включить эту функцию на уровне страницы. tracдля приложения ASP.NET:
Шаг 1) Давайте приступим к работе над нашим демонстрационным приложением. Откройте файл demo.aspx в обозревателе решений.
Шаг 2) Добавьте следующую строку кода, чтобы включить страницу. tracВ объявлении страницы просто добавьте атрибут. Trace=”true”. Эта строка кода позволит разрешить доступ на уровне страницы. tracIng.
<%@ 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>
Запустите приложение в Visual Studio.
Выход:-
Теперь, когда отображается веб-страница Demo.aspx, вы получите массу информации о ней. На этой странице отображается такая информация, как время каждого аспекта жизненного цикла страницы.
Обработка ошибок: отображение пользовательской страницы ошибок
In ASP.NET, вы можете отображать пользователям собственные страницы ошибок. Если приложение содержит какую-либо ошибку, пользовательская страница отобразит эту ошибку пользователю.
В нашем примере мы сначала добавим HTML-страницу. На этой странице пользователю будет отображаться строка «Мы изучаем проблему». Затем мы добавим код ошибки на страницу demo.aspx, чтобы отобразилась страница с ошибкой. Давайте выполним следующие шаги.
Шаг 1) Давайте займемся нашим демо-приложением. Добавим в него HTML-страницу.
- Щелкните правой кнопкой мыши на DemoApplication в обозревателе решений.
- Выберите пункт меню «Добавить» -> «HTML-страница».
Шаг 2) На следующем шаге нам нужно указать имя новой HTML-страницы.
- Укажите имя как ErrorPage.
- Нажмите кнопку ОК, чтобы продолжить.
Шаг 3) Страница ошибки автоматически откроется в Visual Studio. Если вы перейдете в обозреватель решений, вы увидите добавленный файл.
Добавьте на HTML-страницу строку кода «Мы изучаем проблему». Закрывать HTML-файл перед внесением изменений в файл web.config не требуется.
<!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>
Шаг 4) Теперь необходимо внести изменения в файл web.config. Это изменение уведомит о том, что при возникновении ошибки в приложении необходимо отображать пользовательскую страницу ошибки. Тег customErrors позволяет определить пользовательскую страницу ошибки. Свойство defaultRedirect устанавливается на имя нашей пользовательской страницы ошибки, созданной на предыдущем шаге.
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime targetFramework="4.0" />
<customErrors mode="On" defaultRedirect="ErrorPage.html">
</customErrors>
</system.web>
</configuration>
Шаг 5) Теперь добавим немного некорректного кода на страницу demo.aspx.cs. Откройте эту страницу, дважды щелкнув файл в обозревателе решений.
Добавьте приведенный ниже код в файл Demo.aspx.cs.
- Эти строки кода предназначены для чтения текстовых строк из файла.
- Предполагается, что файл находится на диске D и называется Example.txt.
- Но в нашей ситуации этого файла на самом деле не существует. Таким образом, этот код приведет к ошибке при запуске приложения.
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); } } }
Теперь выполните код в Visual Studio и вы должны получить результат ниже.
Выход:-
На приведенной выше странице показано, что в приложении произошла ошибка. В результате пользователю отображается страница ErrorPage.html.
Необработанное исключение ASP.NET
Даже в самых благоприятных сценариях могут возникать непредвиденные ошибки. Предположим, пользователь переходит на неправильную страницу в приложении. Этого невозможно предсказать. В таких случаях ASP.NET может перенаправить пользователя на страницу ErrorPage.html.
Давайте рассмотрим пример.
- Мы будем использовать то же самое демонстрационное приложение, в котором находится файл ErrorPage.html.
- И мы попробуем просмотреть веб-страницу, которой нет в нашем приложении.
- В этом случае нас должны перенаправить на страницу ErrorPage.html. Давайте рассмотрим шаги, необходимые для этого.
Шаг 1) Давайте приступим к работе над нашим демонстрационным приложением. Откройте файл Global.asax.cs в обозревателе решений.
Примечание: Файл Global.asax.cs используется для добавления кода, который будет применяться на всех страницах приложения.
Шаг 2) Добавьте следующую строку кода в файл Global.asax.cs. Эти строки будут использоваться для проверки наличия ошибок и соответствующего отображения страницы ErrorPage.html.
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 Объяснение:-
- Первая строка — это обработчик события Application_Error. Это событие вызывается всякий раз, когда в приложении возникает ошибка. Обратите внимание, что имя события должно быть Application_Error, а параметры должны быть такими, как показано выше.
- Далее мы определяем объект типа класса HttpException. Это стандартный объект, который будет содержать все подробности ошибки. Затем мы используем метод Server.GetLastError, чтобы получить все подробности последней ошибки, произошедшей в приложении.
- Затем мы проверяем, совпадает ли код ошибки последнего сообщения с кодом 404 (код ошибки 404 — это стандартный код, возвращаемый, когда пользователь переходит на страницу, которая не найдена). Если код ошибки совпадает, мы перенаправляем пользователя на страницу ErrorPage.html.
Теперь запустите код в Visual Studio, и вы должны получить следующий результат.
Выход:-
Просмотрите страницу http://localhost:53003/Demo1.aspx. Помните, что Demo1.aspx не существует в нашем приложении. Затем вы получите результат ниже.
На приведенной выше странице показано, что в приложении произошла ошибка. В результате пользователю отображается страница ErrorPage.html.
Ведение журнала ошибок ASP.NET
Регистрация ошибок приложения помогает разработчику отлаживать и устранять ошибки на более позднем этапе. ASP.NET предоставляет возможность регистрировать ошибки. Это делается в файле Global.asax.cs при обнаружении ошибки. В процессе регистрации сообщение об ошибке может быть записано в файл журнала.
Давайте рассмотрим пример.
- Мы будем использовать то же самое демонстрационное приложение, в котором находится файл ErrorPage.html.
- И мы попробуем просмотреть веб-страницу, которой нет в нашем приложении.
- В этом случае мы должны быть перенаправлены на нашу страницу ErrorPage.html.
- И одновременно мы будем записывать сообщение об ошибке в лог-файл. Давайте рассмотрим шаги, необходимые для этого.
Шаг 1) Давайте приступим к работе над нашим демонстрационным приложением. Откройте файл Global.asax.cs в обозревателе решений.
Шаг 2) Добавьте следующую строку кода в файл Global.asax.cs. Она проверит наличие ошибок и отобразит соответствующую страницу ErrorPage.html. Кроме того, одновременно мы будем записывать подробности ошибок в файл AllErrors.txt. В нашем примере мы напишем код для создания этого файла на диске D.
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 Объяснение:-
- Первая строка кода предназначена для получения самой ошибки с помощью метода Server.GetLastError. Затем эта ошибка присваивается переменной exc.
- Затем мы создаём пустую строковую переменную с именем str. Фактическое сообщение об ошибке мы получаем с помощью свойства exc.Message. Свойство exc.Message будет содержать точное сообщение для любой ошибки, возникающей при запуске приложения. Затем это сообщение присваивается строковой переменной.
- Далее мы создаём файл с именем AllErrors.txt. Сюда будут отправляться все сообщения об ошибках. В этот файл мы записываем строку str, содержащую все сообщения об ошибках.
- Наконец, переносим пользователя в файл ErrorPage.html.
Выход:-
Просмотрите страницу http://localhost:53003/Demo1.aspx. Помните, что Demo1.aspx не существует в нашем приложении. Затем вы получите результат ниже.
И в то же время, если вы откроете файл AllErrors.txt, вы увидите следующую информацию.
Сообщение об ошибке может быть позже передано разработчику для целей отладки.





























