Asp.Net Проследяване на ниво страница, отстраняване на грешки, обработка на грешки (пример)

Съдържание:

Anonim

Във всяко приложение задължително ще възникнат грешки по време на процеса на разработка. Важно е да можете да откривате грешки на ранен етап.

Във Visual Studio е възможно да направите това за приложения на ASP.Net. Visual Studio се използва за отстраняване на грешки и има техники за обработка на грешки за ASP.Net.

В този урок ще научите -

  • Какво е отстраняване на грешки в ASP.NET?
  • Какво е проследяване в ASP.NET?
  • Проследяване на ниво страница
  • Обработка на грешки: Показване на персонализирана страница за грешка
  • ASP.NET необработено изключение
  • ASP.NET Регистрация на грешки

Какво е отстраняване на грешки в ASP.NET?

Отстраняването на грешки е процесът на добавяне на точки на прекъсване към приложение. Тези точки на прекъсване се използват за спиране на изпълнението на работеща програма. Това позволява на разработчика да разбере какво се случва в дадена програма в определен момент от времето.

Да вземем пример за програма. Програмата показва на потребителя низ "Ние отстраняваме грешки". Да предположим, че когато стартираме приложението, по някаква причина низът не се показва. За да идентифицираме проблема, трябва да добавим точка на прекъсване. Можем да добавим точка на прекъсване към кодовата линия, която показва низа. Тази точка на прекъсване ще постави на пауза изпълнението на програмата. В този момент програмистът може да види какво е възможно да се обърка. Програмистът коригира съответно програмата.

Тук в примера ще използваме нашата „DemoApplication“, създадена в предишни глави. В следващия пример ще видим

  • Как да накарате демонстрационното приложение да показва низ.
  • Как да добавяте точки на прекъсване към приложение.
  • Как да отстранявате грешки в приложението, използвайки тази точка на прекъсване.

Стъпка 1) Нека първо се уверим, че нашето уеб приложение е отворено в 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, където искате изпълнението на програмата да спре.

  1. За да добавите точка на прекъсване, трябва да щракнете върху колоната, където искате да бъде вмъкната точка на прекъсване. Така че в нашия случай искаме нашата програма да спре на кодовия ред "Response.Write". Не е необходимо да добавяте никаква команда, за да добавите точка на прекъсване. Трябва само да щракнете върху реда, на който искате да добавите точка на прекъсване.
  2. След като направите това, ще забележите, че кодът е маркиран в червено. Също така, червен балон се появява в колоната до кодовия ред.

Забележка: - Можете да добавите множество точки на прекъсване в приложение

Стъпка 4) Сега трябва да стартирате приложението си, като използвате режима за отстраняване на грешки. В Visual Studio изберете опцията от менюто Отстраняване на грешки-> Стартиране на отстраняване на грешки.

Изход: -

Когато изпълните всички стъпки правилно, изпълнението на програмата ще се счупи. Visual Studio ще отиде до точката на прекъсване и ще маркира реда с код в жълто.

Сега, ако програмистът усети, че кодът е неправилен, изпълнението може да бъде спряно. След това кодът може да бъде съответно модифициран. За да продължи работата по програмата, програмистът трябва да щракне върху бутона F5 на клавиатурата.

Какво е проследяване в ASP.NET?

Проследяването на приложения позволява да се види дали някоя от изисканите страници води до грешка. Когато проследяването е активирано, към приложението се добавя допълнителна страница, наречена trace.axd. (Вижте изображението по-долу). Тази страница е приложена към заявлението. Тази страница ще покаже всички заявки и техния статус.

Нека разгледаме как да активираме проследяване за приложение.

Стъпка 1) Нека да работим върху нашата „DemoApplication“. Отворете файла web.config от Solution Explorer.

Стъпка 2) Добавете долния ред код към файла Web.config.

Операторът за проследяване се използва, за да позволи проследяване на приложението.

  • Използва се „requestLimit“ в израза за проследяване. Той определя броя на заявките за страници, които трябва да бъдат проследени.
  • В нашия пример даваме ограничение от 40. Ние даваме ограничение, защото по-висока стойност ще влоши работата на приложението.

Стартирайте "демоапликацията" в Visual Studio.

Изход: -

Ако сега прегледате URL адреса - http: // localhost: 53003 / trace.axd , ще видите информацията за всяка заявка. Тук можете да видите дали в приложението възникват грешки. Следните видове информация са показани на горната страница

  1. Часът на заявката за уеб страницата.
  2. Името на исканата уеб страница.
  3. Кодът на състоянието на уеб заявката. (кодът на състоянието от 200 означава, че заявката е успешна).
  4. Преглед на подробности, който позволявате да видите повече подробности за уеб заявката. Пример за това е показан по-долу. Една важна подробна предоставена информация е заглавната информация. Тази информация показва каква е информацията, изпратена в заглавката на всяка уеб заявка.

Проследяване на ниво страница

Проследяването на страници показва цялата обща информация за уеб страница, когато тя се обработва. Това е полезно при отстраняване на грешки, ако дадена страница не работи по някаква причина.

Visual Studio ще предостави подробна информация за различни аспекти на страницата. Информация като времето за всеки метод, който се извиква в уеб заявката. Например, ако вашето уеб приложение има проблем с производителността, тази информация може да помогне за отстраняване на грешки в проблема. Тази информация се показва, когато приложението се изпълнява в Visual Studio.

Нека разгледаме как да активираме проследяване за приложение на ниво страница.

Стъпка 1) Нека работим върху нашата DemoApplication. Отворете файла demo.aspx от Solution Explorer

Стъпка 2) Добавете долния ред код, за да активирате проследяването на страниците. В декларацията за страница просто добавете реда Trace = "true". Този кодов ред ще позволи проследяване на ниво страница.

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

Сега, когато се покаже уеб страницата Demo.aspx, ще получите много информация за страницата. На тази страница се показва информация като времето за всеки аспект от жизнения цикъл на страницата.

Обработка на грешки: Показване на персонализирана страница за грешка

В ASP.Net можете да показвате на потребителите страници с потребителски грешки. Ако приложението съдържа някакъв вид грешка, персонализирана страница ще покаже тази грешка на потребителя.

В нашия пример първо ще добавим HTML страница. Тази страница ще покаже низ на потребителя "Разглеждаме проблема". След това ще добавим код за грешка към нашата страница demo.aspx, така че да се покаже страницата за грешка.

Нека следваме посочените по-долу стъпки

Стъпка 1) Нека работим върху нашата DemoApplication. Нека добавим HTML страница към приложението

  1. Щракнете с десния бутон върху DemoApplication в Solution Explorer
  2. Изберете опцията от менюто „Добавяне“ -> HTML страница

Стъпка 2) В следващата стъпка трябва да предоставим име на новата HTML страница.

  1. Посочете името като „ErrorPage“.
  2. Щракнете върху бутона „OK“, за да продължите.

Стъпка 3) Страницата за грешка ще се отвори автоматично в Visual Studio. Ако отидете в Solution Explorer, ще видите добавения файл.

Добавете кодовия ред „Разглеждаме проблема“ към HTML страницата. Не е необходимо да затваряте HTML файла, преди да направите промяната във файла web.config.

We are looking into the problem

Стъпка 4) Сега трябва да направите промяна във файла web.config. Тази промяна ще извести, че всеки път, когато възникне грешка в приложението, трябва да се покаже потребителската страница за грешка.

Маркерът "customErrors" позволява да се дефинира страница за персонализирана грешка. Свойството defaultRedirect е зададено на името на страницата на нашата персонализирана грешка, създадена в предишната стъпка.

Стъпка 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");}}}

Обяснение на кода: -

  1. Първият ред е манипулаторът на събития Application_Error. Това събитие се извиква всеки път, когато възникне грешка в приложение. Имайте предвид, че името на събитието трябва да бъде "Application_Error". А параметрите трябва да са както е показано по-горе.
  2. След това дефинираме обект от типа клас HttpException. Това е стандартен обект, който ще съдържа всички подробности за грешката. След това използваме метода Server.GetLastError, за да получим всички подробности за последната грешка, възникнала в приложението.
  3. След това проверяваме дали кодът за грешка на последната грешка е 404. (Кодът за грешка 404 е стандартният код, върнат, когато потребителят преглежда страница, която не е намерена). След това прехвърляме потребителя на страницата ErrorPage.html, ако кодът за грешка съвпада.

Сега стартирайте кода в Visual Studio и трябва да получите изхода по-долу

Изход: -

Прегледайте страницата http: // localhost: 53003 / Demo1.aspx . Не забравяйте, че Demo1.aspx не съществува в нашето приложение. След това ще получите изхода по-долу.

Горната страница показва, че в приложението е задействана грешка. В резултат на това на потребителя се показва страницата Error.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 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");}}}

Обяснение на кода: -

  1. Първият ред е да получите самата грешка, като използвате метода "Server.GetLastError". След това се присвоява на променливата 'exc'.
  2. След това създаваме празна променлива на низ, наречена 'str'. Получаваме действителното съобщение за грешка, като използваме свойството 'exc.Message'. Свойството exc.Message ще има точното съобщение за всяка грешка, която възниква при стартиране на приложението. След това се присвоява на низ променлива.
  3. След това дефинираме файла, наречен „AllErrrors.txt“. Тук ще бъдат изпратени всички съобщения за грешки. Пишем низа 'str', който съдържа всички съобщения за грешки към този файл.
  4. Накрая прехвърляме потребителя във файла ErrorPage.html.

Изход: -

Прегледайте страницата http: // localhost: 53003 / Demo1.aspx . Не забравяйте, че Demo1.aspx не съществува в нашето приложение. След това ще получите изхода по-долу.

И в същото време, ако отворите файла „AllErrors.txt“, ще видите следната информация.

След това съобщението за грешка може да бъде предадено на разработчика по-късно с цел отстраняване на грешки.

Обобщение

  • ASP.Net разполага със съоръжението за извършване на отстраняване на грешки и обработка на грешки.
  • Отстраняването на грешки може да се постигне чрез добавяне на точки на прекъсване към кода. След това се стартира опцията Старт с отстраняване на грешки в Visual Studio за отстраняване на грешки в кода.
  • Проследяването е средство за предоставяне на повече информация, докато стартирате приложението. Това може да се направи на ниво приложение или страница.
  • На ниво страница кодът Trace = true трябва да бъде добавен към директивата за страницата.
  • На ниво приложение се създава допълнителна страница, наречена Trace.axd, за приложението. Това предоставя цялата необходима информация за проследяване.