Рівень сторінки 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 виберіть пункт меню Debug->Start Debugging.
Вихід:-
При правильному виконанні всіх кроків виконання програми порушиться. Visual Studio перейде до точки зупину та позначить рядок коду жовтим кольором.
Тепер, якщо програміст відчує, що код невірний, виконання можна зупинити. Потім код можна змінити відповідно. Щоб продовжити програму, програмісту необхідно натиснути кнопку F5 на клавіатурі.
Що таке Tracпрацюєш в ASP.NET?
додаток tracІНГ дозволяє побачити, чи якісь запитувані сторінки призводять до помилки. Коли tracувімкнено, додаткова сторінка під назвою tracФайл e.axd додано до програми (див. зображення нижче). Ця сторінка прикріплена до програми та відображатиме всі запити та їхній статус.
Як увімкнути Tracдля застосунку в ASP.NET
Давайте розглянемо, як увімкнути tracдля ASP.NET-додаток:
Крок 1) Давайте попрацюємо над нашим DemoApplication. Відкрийте файл web.config з Solution Explorer.
Крок 2) Додайте наведений нижче рядок коду до файлу web.config. tracЕлектронна заява використовується для активації 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>
Запустіть демонстраційну програму (DemoApplication) у 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) Давайте попрацюємо над нашим DemoApplication. Відкрийте файл demo.aspx з Solution Explorer.
Крок 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 у Solution Explorer.
- Виберіть пункт меню Додати->HTML-сторінка.
Крок 2) На наступному кроці нам потрібно дати назву новій HTML-сторінці.
- Вкажіть назву як ErrorPage.
- Натисніть кнопку OK, щоб продовжити.
Крок 3) Сторінка помилки автоматично відкриється у Visual Studio. Якщо ви перейдете до Solution Explorer, ви побачите доданий файл.
Додайте рядок коду «Ми розглядаємо проблему» на 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. Відкрийте цю сторінку, двічі клацнувши файл у 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 і ви повинні отримати наведений нижче результат.
Вихід:-
Наведена вище сторінка показує, що в застосунку сталася помилка. В результаті користувачеві відображається сторінка ErrorPage.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 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 після фіксації помилки. Під час процесу фіксації повідомлення про помилку можна записати у файл журналу.
Давайте розглянемо приклад цього.
- Ми будемо використовувати той самий DemoApplication, який має ErrorPage.html.
- І ми спробуємо переглянути веб-сторінку, якої немає в нашій програмі.
- У цьому випадку ми повинні бути перенаправлені на нашу сторінку ErrorPage.html.
- І водночас ми запишемо повідомлення про помилку у файл журналу. Давайте розглянемо кроки для досягнення цієї мети.
Крок 1) Давайте попрацюємо над нашим DemoApplication. Відкрийте файл Global.asax.cs з Solution Explorer.
Крок 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, ви побачите наведену нижче інформацію.
Пізніше повідомлення про помилку можна передати розробнику для налагодження.





























