Трасування на рівні сторінки Asp.Net, налагодження, обробка помилок [Приклад]
У будь-якій програмі в процесі розробки обов’язково виникають помилки. Важливо вміти виявляти помилки на ранній стадії.
У Visual Studio це можливо для програм ASP.Net. Visual Studio використовується для налагодження та має методи обробки помилок для ASP.Net.
Що таке налагодження в ASP.NET?
Налагодження — це процес додавання точок зупину до програми. Ці точки зупинки використовуються для призупинення виконання запущеної програми. Це дозволяє розробнику зрозуміти, що відбувається в програмі в певний момент часу.
Візьмемо приклад програми. Програма виводить користувачеві рядок «Ми налагоджуємо». Припустимо, коли ми запускаємо додаток, з якоїсь причини рядок не відображається. Щоб визначити проблему, нам потрібно додати точку зупину. Ми можемо додати точку зупину до рядка коду, який відображає рядок. Ця точка зупинки призупинить виконання програми. На цьому етапі програміст може побачити, що, можливо, йде не так. Програміст відповідно виправляє програму.
У цьому прикладі ми будемо використовувати нашу «Демонстраційну програму», створену в попередніх розділах. У наступному прикладі ми побачимо
- Як змусити демонстраційну програму відображати рядок.
- Як додати точки зупину до програми.
- Як налагодити програму за допомогою цієї точки зупину.
Як налагодити програму в 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 виберіть пункт меню Debug->Start Debugging.
Вихід:-
При правильному виконанні всіх кроків виконання програми порушиться. Visual Studio перейде до точки зупину та позначить рядок коду жовтим кольором.
Тепер, якщо програміст відчує, що код невірний, виконання можна зупинити. Потім код можна змінити відповідно. Щоб продовжити програму, програмісту необхідно натиснути кнопку F5 на клавіатурі.
Що таке трасування в ASP.NET?
Відстеження програми дозволяє побачити, чи будь-які запитувані сторінки призводять до помилки. Коли трасування ввімкнено, до програми додається додаткова сторінка під назвою trace.axd. (Див. зображення нижче). Ця сторінка додається до заявки. На цій сторінці будуть показані всі запити та їх статус.
Як увімкнути трасування для програми в ASP.NET
Давайте розглянемо, як увімкнути трасування для Додаток ASP.Net:
Крок 1) Давайте попрацюємо над нашим «DemoApplication». Відкрийте файл web.config у провіднику рішень.
Крок 2) Додайте наведений нижче рядок коду до файлу Web.config.
Інструкція трасування використовується для ввімкнення трасування програми.
- Використовується 'requestLimit' в операторі трасування. Він визначає кількість запитів сторінок, які потрібно відстежити.
- У нашому прикладі ми встановлюємо обмеження 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 enable="true" pageOutput="false" requestLimit="40" localOnly="false"/> </system.web> </configuration>
Запустіть «demoapplication» у Visual Studio.
Вихід:-
Якщо ви зараз перейдете до URL-адреси – http://localhost:53003/trace.axd , ви побачите інформацію для кожного запиту. Тут ви можете побачити, чи трапляються помилки в програмі. На наведеній вище сторінці показані такі типи інформації
- Час запиту веб-сторінки.
- Назва запитуваної веб-сторінки.
- Код статусу веб-запиту. (код статусу 200 означає, що запит виконано успішно).
- Перегляд деталей, який дозволяє переглядати додаткові відомості про веб-запит. Приклад цього показано нижче. Важливою детальною інформацією є інформація заголовка. Ця інформація показує, яка інформація надсилається в заголовку кожного веб-запиту.
Трасування рівня сторінки в ASP.NET
Відстеження рівня сторінки в ASP.Net показує всю загальну інформацію про веб-сторінку під час її обробки. Це корисно для налагодження, якщо сторінка з будь-якої причини не працює. Visual Studio надає детальну інформацію про різні аспекти сторінки та інформацію, наприклад час для кожного методу, який викликається у веб-запиті.
Наприклад, якщо ваша веб-програма має проблеми з продуктивністю, ця інформація може допомогти у виправленні проблеми. Ця інформація відображається під час запуску програми у Visual Studio.
Як увімкнути трасування на рівні сторінки в ASP.NET
Давайте розглянемо, як увімкнути трасування на рівні сторінки для програми ASP.Net:
Крок 1) Давайте попрацюємо над нашим DemoApplication. Відкрийте файл demo.aspx у провіднику рішень
Крок 2) Додайте наведений нижче рядок коду, щоб увімкнути трасування сторінки. В декларації сторінки просто додайте рядок Trace=”true”. Цей рядок коду дозволить відстежувати на рівні сторінки.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" %> <!DOCTYPE html> <html xmlns="http://www.w3.ore/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) Давайте попрацюємо над нашим DemoApplication. Давайте додамо HTML-сторінку до програми
- Клацніть правою кнопкою миші на DemoApplication у Solution Explorer
- Виберіть пункт меню «Додати»->HTML-сторінка
Крок 2) На наступному кроці нам потрібно дати назву новій HTML-сторінці.
- Введіть назву як "ErrorPage".
- Натисніть кнопку «ОК», щоб продовжити.
Крок 3) Сторінка помилок автоматично відкриється у Visual Studio. Якщо ви перейдете до Solution Explorer, ви побачите доданий файл.
Додайте рядок коду «Ми вивчаємо проблему» на сторінку HTML. Вам не потрібно закривати файл HTML перед внесенням змін у файл web.config.
<!DOCTYPE html> <html xmlns="http://www.w3.ore/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. Відкрийте цю сторінку, двічі клацнувши файл у Solution Explorer
Додайте наведений нижче код до файлу 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 і ви повинні отримати наведений нижче результат.
Вихід:-
Сторінка вище показує, що в програмі виникла помилка. У результаті користувачеві відображається сторінка Error.html.
Необроблений виняток ASP.NET
Навіть у найкращому сценарії можливі випадки помилок, які просто непередбачувані.
Припустімо, якщо користувач переходить на неправильну сторінку програми. Це те, що неможливо передбачити. У таких випадках ASP.Net може перенаправити користувача на errorpage.html.
Давайте розглянемо приклад щодо цього.
- Ми збираємося використовувати нашу ту саму «DemoApplication», яка містить Errorpage.html.
- І ми спробуємо переглянути веб-сторінку, якої немає в нашій програмі.
- У цьому випадку ми повинні бути перенаправлені на нашу сторінку ErrorPage.html. Давайте розглянемо кроки для досягнення цього.
Крок 1) Давайте попрацюємо над нашим DemoApplication. Відкрийте файл Global.asax.cs із Solution Explorer
ПРИМІТКА: файл global.asax.cs використовується для додавання коду, який застосовуватиметься на всіх сторінках програми.
Крок 2) Додайте наведений нижче рядок коду до global.asax.cs. Ці рядки використовуватимуться для перевірки помилок і відповідного відображення сторінки ErrorPage.html.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Application_Error(object sender, EventArgs e) { ? HttpException lastErrorWrapper = Server.GetLastError() as HttpException; if(lastErrorWrapper.GetHttpCode() == 404) Server.T ransfer("~/ErrorPage.html"); } } }
Пояснення коду: -
- Перший рядок — це обробник події Application_Error. Ця подія викликається щоразу, коли в програмі виникає помилка. Зауважте, що назва події має бути "Application_Error". І параметри повинні бути такими, як показано вище.
- Далі ми визначаємо об’єкт типу класу HttpException. Це стандартний об’єкт, який містить усі деталі помилки. Потім ми використовуємо метод Server.GetLastError, щоб отримати всі деталі останньої помилки, яка сталася в програмі.
- Потім ми перевіряємо, чи є код помилки останньої помилки 404. (Код помилки 404 є стандартним кодом, який повертається, коли користувач переглядає сторінку, яку не знайдено). Потім ми переводимо користувача на сторінку ErrorPage.html, якщо код помилки збігається.
Тепер запустіть код у Visual Studio, і ви повинні отримати наведені нижче результати
Вихід:-
Перегляньте сторінку http://localhost:53003/Demo1.aspx . Пам’ятайте, що Demo1.aspx не існує в нашій програмі. Тоді ви отримаєте наведений нижче результат.
Сторінка вище показує, що в програмі виникла помилка. У результаті користувачеві відображається сторінка Error.html.
Журналування помилок ASP.NET
Реєструючи помилки програми, це допомагає розробнику налагодити та вирішити помилку пізніше. ASP.Net має можливість реєструвати помилки. Це робиться у файлі Global.asax.cs під час фіксації помилки. Під час процесу захоплення повідомлення про помилку можна записати у файл журналу.
Давайте розглянемо приклад щодо цього.
- Ми збираємося використовувати нашу ту саму демонстраційну програму, яка має Errorpage.html.
- І ми спробуємо переглянути веб-сторінку, якої немає в нашій програмі.
- У цьому випадку ми повинні бути перенаправлені на нашу сторінку ErrorPage.html.
- І в той же час ми запишемо повідомлення про помилку в файл журналу. Давайте розглянемо кроки для досягнення цього.
Крок 1) Давайте попрацюємо над нашим DemoApplication. Відкрийте файл Global.asax.cs із Solution Explorer
Крок 2) Додайте наведений нижче рядок коду до global.asax.cs. Він перевірить наявність помилок і відповідно відобразить сторінку ErrorPage.html. Крім того, ми зареєструємо деталі помилки у файлі під назвою «AllErrors.txt». Для нашого прикладу ми напишемо код для створення цього файлу на диску D.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Application_Error(object sender, EventArgs e) { Exception exc = Server.GetLastError(); String str =""; str = exc.Message; String path = @"D:\AllErrors.txt"; File.WriteAllTest(path,str); Server.trrasfer("~/ErrorPage.html"); } } }
Пояснення коду: -
- Перший рядок — отримати саму помилку за допомогою методу «Server.GetLastError». Потім це присвоюється змінній "exc".
- Потім ми створюємо порожню рядкову змінну під назвою "str". Ми отримуємо фактичне повідомлення про помилку за допомогою властивості exc.Message. Властивість exc.Message матиме точне повідомлення про будь-яку помилку, яка виникає під час запуску програми. Потім це призначається рядковій змінній.
- Далі ми визначаємо файл під назвою «AllErrrors.txt». Сюди надсилатимуться всі повідомлення про помилки. Ми записуємо в цей файл рядок 'str', який містить усі повідомлення про помилки.
- Нарешті, ми переводимо користувача до файлу ErrorPage.html.
Вихід:-
Перегляньте сторінку http://localhost:53003/Demo1.aspx . Пам’ятайте, що Demo1.aspx не існує в нашій програмі. Тоді ви отримаєте наведений нижче результат.
І в той же час, якщо ви відкриєте файл «AllErrors.txt», ви побачите наведену нижче інформацію.
Пізніше повідомлення про помилку можна передати розробнику для налагодження.
Підсумки
- ASP.Net має можливість виконувати налагодження та обробку помилок.
- Налагодження можна досягти шляхом додавання точок зупину до коду. Потім запускається параметр Start with Debugging у Visual Studio, щоб налагодити код.
- Трасування — це засіб надання додаткової інформації під час роботи програми. Це можна зробити на рівні програми або сторінки.
- На рівні сторінки до директиви сторінки необхідно додати код Trace=true.
- На рівні програми для програми створюється додаткова сторінка під назвою Trace.axd. Це надає всю необхідну інформацію про відстеження.