Ниво на страница в 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?
Приложение tracING позволява да се види дали някоя от заявените страници е довела до грешка. Когато tracе активирано, допълнителна страница, наречена trace.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
Ниво на страница TracING В 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, ще видите информацията по-долу.
След това съобщението за грешка може да бъде предадено на разработчика на по-късен етап за целите на отстраняване на грешки.





























