Asp.Net تتبع مستوى الصفحة وتصحيح الأخطاء ومعالجة الأخطاء [مثال]

في أي تطبيق، لا بد أن تحدث الأخطاء أثناء عملية التطوير. من المهم أن تكون قادرًا على اكتشاف الأخطاء في مرحلة مبكرة.

في Visual Studio، من الممكن القيام بذلك لتطبيقات ASP.Net. يستخدم Visual Studio لتصحيح الأخطاء ويحتوي على تقنيات معالجة الأخطاء لـ ASP.Net.

ما هو التصحيح في ASP.NET؟

تصحيح الأخطاء هو عملية إضافة نقاط التوقف إلى التطبيق. تُستخدم نقاط التوقف هذه لإيقاف تنفيذ برنامج قيد التشغيل مؤقتًا. يتيح ذلك للمطور فهم ما يحدث في البرنامج في وقت معين.

لنأخذ مثالاً لبرنامج. يعرض البرنامج سلسلة نصية "نحن بصدد تصحيح الأخطاء" للمستخدم. لنفترض أنه عند تشغيل التطبيق، لا يتم عرض السلسلة لسبب ما. لتحديد المشكلة، نحتاج إلى إضافة نقطة توقف. يمكننا إضافة نقطة توقف إلى سطر التعليمات البرمجية الذي يعرض السلسلة. ستؤدي نقطة التوقف هذه إلى إيقاف تنفيذ البرنامج مؤقتًا. في هذه المرحلة، يمكن للمبرمج أن يرى ما قد يكون خطأً. يقوم المبرمج بتصحيح البرنامج وفقًا لذلك.

هنا في هذا المثال، سوف نستخدم "DemoApplication" الذي تم إنشاؤه في الفصول السابقة. في المثال التالي، سوف نرى

  • كيفية جعل التطبيق التجريبي يعرض سلسلة.
  • كيفية إضافة نقاط التوقف إلى التطبيق.
  • كيفية تصحيح التطبيق باستخدام نقطة التوقف هذه.

كيفية تصحيح تطبيق في 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

دعونا نلقي نظرة على كيفية تمكين التتبع لـ تطبيق ASP.Net:

الخطوة 1) دعونا نعمل على "DemoApplication" الخاص بنا. افتح ملف 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. انقر فوق الزر "موافق" للمتابعة.

معالجة الأخطاء في ASP.Net

الخطوة 3) سيتم فتح صفحة الخطأ تلقائيًا في Visual Studio. إذا انتقلت إلى مستكشف الحلول، فسترى الملف المضاف.

معالجة الأخطاء في 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. افتح هذه الصفحة بالنقر المزدوج على الملف في مستكشف الحلول

معالجة الأخطاء في 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);
		  }
		}
}

الآن قم بتنفيذ الكود في البصرية ستوديو ويجب أن تحصل على الإخراج أدناه.

انتاج:-

معالجة الأخطاء في ASP.Net

تُظهر الصفحة أعلاه حدوث خطأ في التطبيق. ونتيجة لذلك، يتم عرض صفحة Error.html للمستخدم.

ASP.NET استثناء غير معالج

حتى في أفضل السيناريوهات، يمكن أن تكون هناك حالات من الأخطاء غير المتوقعة.

لنفترض أنه إذا قام المستخدم بالتصفح إلى الصفحة الخاطئة في التطبيق. وهذا شيء لا يمكن التنبؤ به. في مثل هذه الحالات، يمكن لـ ASP.Net إعادة توجيه المستخدم إلى errorpage.html.

دعونا نرى مثالا على ذلك.

  • سنستخدم نفس "DemoApplication" الذي يحتوي على 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. بعد ذلك، نقوم بتعريف الملف المسمى "AllErrors.txt". هذا هو المكان الذي سيتم إرسال كافة رسائل الخطأ. نكتب السلسلة "str" ​​التي تحتوي على كافة رسائل الخطأ إلى هذا الملف.
  4. وأخيرًا، نقوم بنقل المستخدم إلى ملف ErrorPage.html.

انتاج:-

تصفح الصفحة http://localhost:53003/Demo1.aspx . تذكر أن Demo1.aspx غير موجود في تطبيقنا. سوف تحصل بعد ذلك على الإخراج أدناه.

تسجيل أخطاء ASP.NET

وفي الوقت نفسه، إذا قمت بفتح ملف "AllErrors.txt"، فسترى المعلومات أدناه.

تسجيل أخطاء ASP.NET

يمكن بعد ذلك إرسال رسالة الخطأ إلى المطور في وقت لاحق لأغراض التصحيح.

الملخص

  • يتمتع ASP.Net بإمكانية إجراء تصحيح الأخطاء ومعالجة الأخطاء.
  • يمكن تحقيق تصحيح الأخطاء عن طريق إضافة نقاط توقف إلى الكود. ثم يتم تشغيل خيار البدء بالتصحيح في Visual Studio لتصحيح أخطاء الكود.
  • التتبع هو وسيلة لتوفير مزيد من المعلومات أثناء تشغيل التطبيق. ويمكن القيام بذلك على مستوى التطبيق أو الصفحة.
  • على مستوى الصفحة، يجب إضافة الكود Trace=true إلى توجيه الصفحة.
  • على مستوى التطبيق، يتم إنشاء صفحة إضافية تسمى Trace.axd للتطبيق. وهذا يوفر جميع معلومات التتبع اللازمة.