أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

كيفية إنشاء التقرير في ASP.NET باستخدام Visual Basic .NET صفحات خطأ مخصصة

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

اضغط هنا لرابط المقالة باللغة الانجليزية308132
للحصول على إصدار Microsoft Visual C# .NET من هذه المقالة، راجع 306355.

للحصول على معلومات إضافية حول كيفية تنفيذ هذه المهمة باستخدام صفحات الملقم النشطة لـ Microsoft "، انقر فوق رقم المقالة أدناه لعرضها في" قاعدة المعارف لـ Microsoft:
299981كيفية استخدام كائن ASPError لإنشاء صفحة خطأ مخصص - معالجة في ملقم معلومات إنترنت
يشير هذه المقالة التالية Microsoft .NET Framework مكتبة الفئات مساحات الأسماء:
  • System.Diagnostics

في هذه المهمة

الموجز
توضح هذه المقالة كيفية استخدام التعليمات البرمجية Visual Basic .NET اعتراض والاستجابة إلى أخطاء عند حدوثها في ASP.NET. يحتوي ASP.NET على محسّنة خطأ معالجة الخيارات من التقليدية Microsoft صفحات الملقم النشطة (ASP). في ASP.NET ، يمكنك معالجة الأخطاء في عدة مستويات مختلفة في التطبيقات.


الميزات الجديدة في ASP.NET

يقدم ASP.NET العديد من التطورات في كيف يمكنك معالجة ثم الاستجابة إلى أخطاء. في ASP التقليدية معالجة أخطاء "على خطأ استئناف التالي" (أو كتل حاول الالتقاط في JScript). بشكل بديل، إذا كنت تقوم بتشغيل "خدمات معلومات الإنترنت لـ Microsoft" (IIS) 5.0 استخدام الكائن ASPError لإنشاء صفحة خطأ مخصصة تقارير. ومع ذلك، تتوفر هذه الطرق القيود الخاصة بها.

يوفر ASP.NET عدة مستويات التي يمكنك معالجة ثم الاستجابة إلى الأخطاء التي قد تحدث عند تشغيل أحد تطبيقات ASP.NET. يوفر ASP.NET ثلاثة أساليب الرئيسي التي تسمح بتراكب والاستجابة إلى أخطاء عند حدوثها: الحدث Page_Error الحدث Application_Error وتكوين التطبيق الملف (Web.config).

توضح هذه المقالة كيفية استخدام هذه الميزات الجديدة في تطبيق ASP.NET. على الرغم من أن توضح هذه المقالة كيفية توفير صفحات خطأ مخصصة الإعلام عن الأخطاء العامة عندما تتعلق مباشرة إلى ASP.NET ، لا يوضح هذا المقال معالجة الطرق مثل كتلة المحاولة - catch-وأخيراً ونظام استثناء وقت تشغيل اللغة العامة (CLR) الأخطاء الأخرى.


كيفية استخدام حدث Page_Error

يوفر الحدث Page_Error طريقة إلى اعتراض الأخطاء التي تحدث مستوى الصفحة. يمكنك عرض معلومات الخطأ ببساطة (كما يفعل نموذج التعليمة البرمجية لمتابعة) ، أو يمكنك تسجيل الحدث أو تنفيذ إجراء آخر.

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

يطرح هذا المثال استثناء فارغة يفرض خطأ في الحدث Page_Load. اتبع الخطوات التالية لإنشاء الصفحة الأولية التي سيتم اختبار الحدث Page_Error.
  1. اتبع الخطوات التالية لإضافة ملف جديد باسم PageEvent.aspx إلى المشروع:
    1. افتح Microsoft Visual Studio .NET.
    2. في "مستكشف الحلول" انقر بزر الماوس الأيمن فوق عقدة المشروع أشر إلى إضافة ثم ثم انقر فوق إضافة نموذج ويب.
    3. في مربع النص اسم اكتب PageEvent.aspx ومن ثم انقر فوق فتح.
  2. قم بإضافة التعليمات البرمجية التالية إلى اللغة الصفحة PageEvent.aspx:
    <%@ Page Language="vb"%><script runat=server>Sub Page_Load(Sender as object, e as EventArgs)	throw(new System.ArgumentNullException())End Sub		Sub Page_Error(Sender as object, e as EventArgs)	Dim objErr as Exception = Server.GetLastError().GetBaseException()	Dim err as String = "<b>Error Caught in Page_Error event</b><hr><br>" & _ 			  "<br><b>Error in: </b>" & Request.Url.ToString() & _			  "<br><b>Error Message: </b>" & objErr.Message.ToString() & _			  "<br><b>Stack Trace:</b><br>" & _			  objErr.StackTrace.ToString()	Response.Write(err.ToString())	Server.ClearError()End Sub</script>					
  3. من القائمة ملف، انقر فوق حفظ PageEvent.aspx.
  4. انقر بزر الماوس الأيمن فوق الصفحة ثم انقر فوق عرض في مستعرض لتشغيل الصفحة. لاحظ أن الخطأ طرح وإنشاء تقرير استناداً إلى مواصفات التعليمات البرمجية.
ملاحظة: يمكنك قد تلاحظ أن التعليمة البرمجية مشكلات استدعاء Server.ClearError. يمنع هذا الخطأ من المتابعة إلى معالجة الحدث Application_Error.


كيفية استخدام حدث Application_Error

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

نموذج لمتابعة استناداً إلى نموذج التعليمات البرمجية الحدث Page_Error السابق ثم يمكن تشغيله إذا لم تم trapped الخطأ في الحدث Page_Load في الحدث Page_Error. يتم تحديد الحدث Application_Error في ملف Global.asax التطبيق الخاص بك. ببساطة, الخطوات في هذا المقطع بإنشاء صفحة جديدة في طرح الاستثناء اعتراض الخطأ في الحدث Application_Error ملف Global.asax ثم كتابة الخطأ إلى سجل الأحداث. توضح الخطوات التالية كيفية استخدام الحدث Application_Error:
  1. إضافة ملف جديد باسم AppEvent.aspx إلى المشروع.
  2. قم بإضافة التعليمات البرمجية التالية إلى AppEvent.aspx:
    <script language=vb runat="server">     Sub Page_Load(Sender as object, e as EventArgs)	     throw(new ArgumentNullException())     End Sub</script>					
  3. من القائمة ملف، انقر فوق حفظ AppEvent.aspx.
  4. إضافة حدث Application_Error إلى ملف Global.asax إلى اعتراض خطأ الإلقاء في الحدث Page_Load الصفحة AppEvent.aspx. لاحظ أنه يجب إضافة عبارة عمليات الاستيراد لمساحة الاسم System.Diagnostics Global.asax لاستخدام سجل الأحداث.

    قم بإضافة التعليمات البرمجية التالية إلى objErr تبهيت Application_Error(ByVal sender As Object, ByVal e As EventArgs) Sub System.Diagnostics file:
    Imports System.Diagnostics        Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)        Dim objErr As Exception = Server.GetLastError().GetBaseException()        Dim err As String = "Error Caught in Application_Error event" & _                            System.Environment.NewLine & _                            "Error in: " & Request.Url.ToString() & _                            System.Environment.NewLine & _                            "Error Message: " & objErr.Message.ToString() & _                            System.Environment.NewLine & _                            "Stack Trace:" & objErr.StackTrace.ToString()        EventLog.WriteEntry("Sample_WebApp", err, EventLogEntryType.Error)        Server.ClearError()        'additional actions...    End Sub					
  5. حفظ الملف Global.asax.
  6. في Visual Studio .NET ، في القائمة إنشاء ، انقر فوق إنشاء.
  7. انقر بزر الماوس الأيمن فوق الصفحة ثم انقر فوق عرض في مستعرض. في هذه الحالة سيتم الصفحة فارغة, على الرغم من ذلك، يجب أن تلاحظ إضافة إدخال جديد في سجل الأحداث. يجعل هذا النموذج إدخال في سجل التطبيق التي يمكن الوصول إليها من "عارض الأحداث". بعد تسجيل الخطأ قد تحتاج إلى إعادة توجيه المستخدم إلى صفحة خطأ ومألوفة بالنسبة للمستخدم ونشرها أكثر أخرى أو أداء بعض الإجراءات إضافية عند الحاجة.

كيفية استخدام ملف Web.config

إذا كان الاتصال Server.ClearError أو معالجة الاعتراض الخطأ في Page_Error أو الحدث Application_Error ، الخطأ استناداً إلى الإعدادات الموجودة في المقطع <customerrors>ملف Web.config. في المقطع <customerrors>يمكنك تعيين صفحة إعادة توجيه كـ (صفحة "خطأ الافتراضيdefaultRedirect) أو حدد صفحة معينة استناداً إلى رمز خطأ HTTP الذي يظهر. يمكنك استخدام هذا الأسلوب لتخصيص رسالة الخطأ التي يتلقاها المستخدم.

في حالة حدوث خطأ، لا يتم trapped في أي من المستويات السابقة في التطبيق الخاص بك يتم عرض هذه الصفحة مخصصة. يوضح هذا القسم كيفية تعديل ملف Global.asax بحيث لا يتم استدعاء Server.ClearError. نتيجة لذلك، تتم معالجة الخطأ في ملف Web.config كنقطة الأخير إلى اعتراض الخطأ.
  1. فتح ملف Global.asax من المثال السابق.
  2. تعليق الخروج سطر Server.ClearError لضمان surfaces الخطأ في Web.config الملف.
  3. حفظ التغييرات إلى Global.asax. يجب أن تظهر التعليمة البرمجية الخاصة بك الآن مشابهة لما يلي: objErr
            Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)        Dim objErr As Exception = Server.GetLastError().GetBaseException()        Dim err As String = "Error Caught in Application_Error event" & _                            System.Environment.NewLine & _                            "Error in: " & Request.Url.ToString() & _                            System.Environment.NewLine & _                            "Error Message: " & objErr.Message.ToString() & _                            System.Environment.NewLine & _                            "Stack Trace:" & objErr.StackTrace.ToString()        EventLog.WriteEntry("Sample_WebApp", err, EventLogEntryType.Error)        'Server.ClearError()        'additional actions...    End Sub					
  4. قم بإضافة التعليمة البرمجية التالية إلى المقطع <customerrors>لإعادة توجيه المستخدم إلى صفحة مخصصة:
    <customErrors defaultRedirect="http://hostName/applicationName/errorStatus.htm" mode="On"></customErrors>						
    ملاحظة: يجب أن يمكنك تعديل مسار الملف في السمة "defaultRedirect بحيث يشير ملقم ويب ذات الصلة واسم التطبيق.
  5. لأنه يتم إرسال أخطاء trapped في هذا المستوى إلى صفحة الأخطاء افتراضية ، يجب أن تقوم بإنشاء صفحة خطأ باسم ErrorStatus.htm. ضع في الاعتبار استخدام هذا الأسلوب للتحكم ما يتم تقديم للمستخدم، بحيث يستخدم هذا المثال على صفحة .htm صفحة الخطأ. قم بإضافة التعليمات البرمجية التالية إلى ErrorStatus.htm:
    <HTML><HEAD><TITLE></TITLE><META NAME="GENERATOR" Content="Microsoft Visual Studio 7.0"></HEAD><BODY>     <b>Custom Error page!</b>     <br>     You have been redirected here from the <customErrors> section of the      Web.config file.</BODY></HTML>					
  6. لاختبار التعليمة البرمجية حفظ الملفات إنشاء المشروع ثم قم بعرض AppEvent.aspx في المستعرض. لاحظ أنه عند طرح الخطأ, تتم إعادة توجيهك إلى صفحة ErrorStatus.htm.
على الرغم من أنه يمكنك الرجوع إلى صفحة الأخطاء افتراضية في قيمة السمة "defaultRedirect" في المقطع <customerrors>، يمكنك أيضاً تحديد صفحة معينة لإعادة توجيه إلى استناداً إلى رمز خطأ HTTP الذي يظهر. عنصر تابع <error>يسمح هذا الخيار. على سبيل المثال:
<customErrors defaultRedirect="http://hostName/applicationName/errorStatus.htm" mode="On">	<error statusCode="404" redirect="filenotfound.htm" /></customErrors>				
ملاحظة: الصفحة المحدد في defaultRedirect المقطع <customerrors>ملف .htm. إذا كنت تريد استخدامGetLastError في صفحة .aspx (الذي القيام نماذج Page_Error و Application_Error) ، يجب تخزين الاستثناء في متغير جلسة عمل أو بعض الأساليب الأخرى قبل أن يتم إعادة التوجيه.

إشعار يتضمن المقطع <customerrors>سمة وضع تعيين إلى تشغيل. يتم استخدام السمة وضع للتحكم في كيفية تحدث إعادة التوجيه خطأ. على سبيل المثال، إذا كنت تقوم بتطوير التطبيق التي من المحتمل مشاهدة رسائل الخطأ ASP.NET الفعلي ثم لا تريد أن يتم إعادة توجيهك إلى صفحة الخطأ ومألوفة بالنسبة للمستخدم ونشرها أكثر. تتضمن سمة وضع الإعدادات التالية:
  • على: الاستثناءات غير المعالجة توجيه المستخدم إلى الصفحة المحددة defaultRedirect. يتم استخدام هذا الوضع بشكل رئيسي في الإنتاج.
  • إيقاف: تلقي معلومات استثناء والمستخدمين لا تتم إعادة توجيهك إلى صفحة defaultRedirect. يتم استخدام هذا الوضع بشكل رئيسي في تطوير.
  • RemoteOnly: فقط يتلقى المستخدمون الذين يقومون بالوصول إلى الموقع الموجود على الكمبيوتر المحلي (باستخدام localhost) معلومات استثناء. تتم إعادة توجيه كافة المستخدمين الآخرين إلى الصفحة "defaultRedirect". يتم استخدام هذا الوضع بشكل رئيسي من أجل التصحيح.

استكشاف الأخطاء وإصلاحها

في التثبيت الافتراضي الخاص به على نظام التشغيل Windows 2000 و Windows XP ، ASP.NET يتم تشغيل التعليمات البرمجية للتطبيق ويب في عملية عامل. هوية هذه العملية الافتراضية حساب محلي unprivileged تسمى حساب ASPNET. في إصدارات بيتا من ASP.NET ، كان هوية عملية النظام حساب إدارية قوية بامتيازات العديد من الجهاز.

في التثبيت الافتراضي الخاص به على Windows Server 2003 (IIS6) ، يعمل ASP.NET على ويب التعليمات البرمجية للتطبيق في عملية عامل. هوية هذه العملية الافتراضية حساب محدود يسمى NetworkService.

الرجاء مراجعة الارتباطات التالية للحصول على مزيد من المعلومات حول هذا التغيير و كيفية فإنه يمكن التأثير بتشغيل التعليمات البرمجية في هذه المقالة بالإضافة إلى التعليمات الأخرى البرمجية الأخرى التي قد تحتاج إلى حقوق وصول إضافية.
الإصدار تغييرات الأمان 1 لـ Microsoft .NET Framework
http://msdn2.microsoft.com/en-us/library/ms994923.aspx
مراجع
لمزيد من المعلومات، ارجع إلى مواقع Microsoft التالية على الويب:
حاول التقاط وأخيراً أخطاء تعويض اللون

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 308132 - آخر مراجعة: 08/28/2007 06:26:02 - المراجعة: 5.7

Microsoft ASP.NET 1.0, Microsoft ASP.NET 1.1, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2003 Standard Edition

  • kbmt kbconfig kbhowtomaster kbweb KB308132 KbMtar
تعليقات
t=">