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

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

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

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

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

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

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

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

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

قم بتشغيل "التطبيق التجريبي" في Visual Studio.

انتاج:-

تمكين التتبع لتطبيق في ASP.NET

إذا قمت الآن بالتصفح للوصول إلى عنوان URL – http://localhost:53003/trace.axd ، ستظهر لك المعلومات الخاصة بكل طلب. هنا يمكنك معرفة ما إذا كانت هناك أية أخطاء تحدث في التطبيق. المتابعةwing يتم عرض أنواع المعلومات في الصفحة أعلاه

  1. وقت طلب صفحة الويب.
  2. اسم صفحة الويب المطلوبة.
  3. رمز الحالة لطلب الويب. (رمز الحالة 200 يعني أن الطلب ناجح).
  4. المنظر ديtails التي تسمح لك بمشاهدة المزيد منtails حول طلب الويب. ويرد أدناه مثال على ذلك. إحدى المعلومات التفصيلية الهامة المقدمة هي معلومات الرأس. توضح هذه المعلومات ما هي المعلومات المرسلة في رأس كل طلب ويب.

تمكين التتبع لتطبيق في 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. إذا ذهبت إلى 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);
		  }
		}
}

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

انتاج:-

معالجة الأخطاء في 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. هذا هو الكائن القياسي الذي سوف يحمل كل ديtails من الخطأ. نستخدم بعد ذلك طريقة Server.GetLastError للحصول على كافة المعلوماتtails من الخطأ الأخير الذي حدث في التطبيق.
  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 وفقًا لذلك. وفي نفس الوقت أيضًا، سنقوم بتسجيل الخطأ details في ملف يسمى "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 للتطبيق. وهذا يوفر جميع معلومات التتبع اللازمة.