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

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

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

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

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

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

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

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

Как да отстранявате грешки в приложение в ASP.NET

По-долу са стъпките за създаване на демонстрационно приложение, добавяне на точки на прекъсване и отстраняване на грешки в ASP.Net:

Стъпка 1) Отворете приложението във Visual Studio
Нека първо се уверим, че нашето уеб приложение е отворено във Visual Studio. Уверете се, че приложението DemoApplication е отворено във Visual Studio.

Отстраняване на грешки в приложение в ASP.NET

Стъпка 2) Сега отворете файла Demo.aspx.cs и добавете кодовия ред по-долу.

  • Ние просто добавяме кодовия ред Response.Write за показване на низ.
  • Така че, когато приложението се изпълни, то трябва да покаже низа „Отстраняваме грешки“ в уеб браузъра.

Отстраняване на грешки в приложение в ASP.NET

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, където искате да спре изпълнението на програмата.

Отстраняване на грешки в приложение в ASP.NET

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

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

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

Отстраняване на грешки в приложение в ASP.NET

Изход: -

Отстраняване на грешки в приложение в ASP.NET

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

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

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

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

Проследяване в ASP.NET

Как да активирате проследяване за приложение в ASP.NET

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

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

Активиране на проследяване за приложение в ASP.NET

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

Инструкцията за проследяване се използва за активиране на проследяване за приложението.

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

Активиране на проследяване за приложение в ASP.NET

<?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.

Изход: -

Активиране на проследяване за приложение в ASP.NET

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

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

Активиране на проследяване за приложение в ASP.NET

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

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

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

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

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

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

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

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

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

<%@ 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.

Изход: -

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

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

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

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

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

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

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

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

Обработка на грешки в ASP.Net

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

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

Обработка на грешки в ASP.Net

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

Обработка на грешки в ASP.Net

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

Обработка на грешки в ASP.Net

<!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 е зададено на името на нашата персонализирана страница за грешка, създадена в предишната стъпка.

Обработка на грешки в ASP.Net

<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

Обработка на грешки в ASP.Net

Добавете кода по-долу към файла Demo.aspx.cs.

  • Тези редове код са предназначени да четат редовете на текст от файл.
  • Предполага се, че файлът се намира в D устройството с името „Example.txt“.
  • Но в нашата ситуация този файл наистина не съществува. Така че този код ще доведе до грешка, когато приложението се изпълнява.

Обработка на грешки в ASP.Net

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 и трябва да получите изхода по-долу.

Изход: -

Обработка на грешки в ASP.Net

Горната страница показва, че е задействана грешка в приложението. В резултат на това на потребителя се показва страницата Error.html.

Необработено изключение на ASP.NET

Дори и в най-добрия сценарий може да има случаи на грешки, които просто не са предвидени.

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

Нека да видим пример за това.

  • Ще използваме същото нашето „Демоприложение“, което има Errorpage.html.
  • И ние ще се опитаме да видим уеб страница, която не съществува в нашето приложение.
  • В този случай трябва да бъдем пренасочени към нашата страница ErrorPage.html. Нека да видим стъпките за постигане на това.

Стъпка 1) Нека да работим върху нашето Демо приложение. Отворете файла Global.asax.cs от Solution Explorer

Необработено изключение на ASP.NET

ЗАБЕЛЕЖКА: Файлът global.asax.cs се използва за добавяне на код, който ще бъде приложим във всички страници в приложението.

Стъпка 2) Добавете реда от код по-долу към global.asax.cs. Тези редове ще се използват за проверка за грешки и съответно показване на страницата ErrorPage.html.

Необработено изключение на ASP.NET

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 не съществува в нашето приложение. След това ще получите резултата по-долу.

Необработено изключение в ASP.NET

Горната страница показва, че е задействана грешка в приложението. В резултат на това на потребителя се показва страницата Error.html.

ASP.NET Регистриране на грешки

Като записва грешки в приложението, той помага на разработчика да отстрани грешки и да разреши грешката на по-късен етап. ASP.Net има възможността да регистрира грешки. Това се прави във файла Global.asax.cs, когато грешката бъде уловена. По време на процеса на заснемане съобщението за грешка може да бъде записано в лог файл.

Нека да видим пример за това.

  • Ще използваме същото демо приложение, което има Errorpage.html.
  • И ние ще се опитаме да видим уеб страница, която не съществува в нашето приложение.
  • В този случай трябва да бъдем пренасочени към нашата страница ErrorPage.html.
  • И в същото време ще запишем съобщението за грешка в лог файл. Нека да видим стъпките за постигане на това.

Стъпка 1) Нека да работим върху нашето Демо приложение. Отворете файла Global.asax.cs от Solution Explorer

ASP.NET Регистриране на грешки

Стъпка 2) Добавете реда от код по-долу към global.asax.cs. Той ще провери за грешки и съответно ще покаже страницата ErrorPage.html. Освен това в същото време ще регистрираме подробностите за грешката във файл, наречен „AllErrors.txt“. За нашия пример ще напишем код, за да създадем този файл на D устройството.

ASP.NET Регистриране на грешки

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 не съществува в нашето приложение. След това ще получите резултата по-долу.

ASP.NET Регистриране на грешки

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

ASP.NET Регистриране на грешки

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

Oбобщение

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