استكشاف أخطاء تطبيق في Azure App Service وإصلاحها باستخدام Visual Studio
نظرة عامة
يوضح هذا البرنامج التعليمي كيفية استخدام أدوات Visual Studio للمساعدة في تصحيح أخطاء تطبيق في App Service، عن طريق التشغيل في وضع تصحيح الأخطاء عن بعد أو عن طريق عرض سجلات التطبيقات وسجلات خادم الويب.
ستتعلم ما يلي:
- وظائف إدارة التطبيقات المتوفرة في Visual Studio.
- كيفية استخدام طريقة العرض Visual Studio عن بعد لإجراء تغييرات سريعة في تطبيق بعيد.
- كيفية تشغيل وضع التصحيح عن بعد أثناء تشغيل مشروع في Azure، سواء لتطبيق أو ل WebJob.
- كيفية إنشاء سجلات تتبع التطبيق وعرضها أثناء قيام التطبيق بإنشائها.
- كيفية عرض سجلات خادم الويب، بما في ذلك رسائل الخطأ التفصيلية وتتبع الطلبات الفاشلة.
- كيفية إرسال سجلات تشخيصية إلى حساب Azure Storage وعرضها هناك.
إذا كان لديك Visual Studio Ultimate ، فيمكنك أيضا استخدام IntelliTrace لتصحيح الأخطاء. لا يتم تغطية IntelliTrace في هذا البرنامج التعليمي.
المتطلبات الأساسية
يعمل هذا البرنامج التعليمي مع بيئة التطوير ومشروع الويب وتطبيق App Service الذي قمت بإعداده في إنشاء تطبيق ASP.NET في Azure App Service. بالنسبة إلى أقسام WebJobs، ستحتاج إلى التطبيق الذي تقوم بإنشائه بدء الاستخدام باستخدام Azure WebJobs SDK.
عينات التعليمات البرمجية الموضحة في هذا البرنامج التعليمي مخصصة لتطبيق ويب C # MVC ، ولكن إجراءات استكشاف الأخطاء وإصلاحها هي نفسها بالنسبة لتطبيقات Visual Basic والتطبيقات نماذج ويب.
يفترض البرنامج التعليمي أنك تستخدم Visual Studio 2019.
تعمل ميزة سجلات البث فقط مع التطبيقات التي تستهدف .NET Framework 4 أو أحدث.
تكوين التطبيق وإدارته
يوفر Visual Studio إمكانية الوصول إلى مجموعة فرعية من وظائف إدارة التطبيقات وإعدادات التكوين المتوفرة في مدخل Azure. في هذا القسم، سترى ما هو متوفر باستخدام "مستكشف الخادم". للاطلاع على أحدث ميزات تكامل Azure، جرب Cloud Explorer أيضا. يمكنك فتح كلا النافذتين من القائمة عرض .
إذا لم تكن قد سجلت الدخول بالفعل إلى Azure في Visual Studio، فانقر بزر الماوس الأيمن فوق Azure وحدد الاتصال إلى اشتراك Microsoft Azure في مستكشف الخادم.
البديل هو تثبيت شهادة إدارة تمكن من الوصول إلى حسابك. إذا اخترت تثبيت شهادة، فانقر بزر الماوس الأيمن فوق عقدة Azure في مستكشف الخادم، ثم حدد إدارة الاشتراكات وتصفيتها في قائمة السياق. في مربع الحوار إدارة اشتراكات Microsoft Azure ، انقر فوق علامة التبويب شهادات ثم انقر فوق استيراد. اتبع الإرشادات لتنزيل ملف اشتراك ثم استيراده (يسمى أيضا ملف . publishsettings ) لحساب Azure الخاص بك.
ملاحظة
إذا قمت بتنزيل ملف اشتراك، فاحفظه في مجلد خارج أدلة التعليمات البرمجية المصدر (على سبيل المثال، في مجلد التنزيلات)، ثم احذفه بمجرد اكتمال الاستيراد. يمكن للمستخدم الضار الذي يحصل على حق الوصول إلى ملف الاشتراك تحرير خدمات Azure وإنشائها وحذفها.
لمزيد من المعلومات حول الاتصال بموارد Azure من Visual Studio، راجع تعيين أدوار Azure باستخدام مدخل Azure.
في " مستكشف الخادم"، قم بتوسيع Azure وقم بتوسيع خدمة التطبيق.
قم بتوسيع مجموعة الموارد التي تتضمن التطبيق الذي قمت بإنشائه في إنشاء تطبيق ASP.NET في Azure App Service، ثم انقر بزر الماوس الأيمن فوق عقدة التطبيق وانقر فوق عرض الإعدادات.

تظهر علامة التبويب Azure Web App، ويمكنك أن ترى هناك مهام إدارة التطبيق وتكوينه المتوفرة في Visual Studio.

في هذا البرنامج التعليمي، ستستخدم القائمة المنسدلة لتسجيل الدخول والتتبع. ستستخدم أيضا تصحيح الأخطاء عن بعد ولكنك ستستخدم طريقة مختلفة لتمكينه.
للحصول على معلومات حول المربعين الإعدادات التطبيق وسلاسل الاتصال في هذه النافذة، راجع خدمة تطبيقات Azure: كيفية عمل سلاسل التطبيقات وسلاسل الاتصال.
إذا كنت ترغب في تنفيذ مهمة إدارة تطبيق لا يمكن القيام بها في هذه النافذة، فانقر فوق فتح في مدخل الإدارة لفتح نافذة مستعرض إلى مدخل Azure.
الوصول إلى ملفات التطبيق في مستكشف الخادم
عادة ما تقوم بنشر مشروع ويب مع customErrors وضع العلامة في ملف Web.config الذي تم تعيينه عليه On أو RemoteOnly، مما يعني أنك لا تتلقى رسالة خطأ مفيدة عند حدوث خطأ ما. بالنسبة للعديد من الأخطاء ، كل ما تحصل عليه هو صفحة مثل إحدى الصفحات التالية:
خطأ في الخادم في تطبيق '/':
حدث خطأ:
يتعذر على موقع الويب عرض الصفحة
في كثير من الأحيان ، تكون أسهل طريقة للعثور على سبب الخطأ هي تمكين رسائل الخطأ التفصيلية ، والتي تشرح أول لقطات الشاشة السابقة كيفية القيام بها. يتطلب ذلك تغييرا في ملف Web.config الذي تم نشره. يمكنك تحرير ملف Web.config في المشروع وإعادة نشر المشروع، أو إنشاء Web.config تحويل ونشر بنية تصحيح الأخطاء، ولكن هناك طريقة أسرع: في مستكشف الحلول، يمكنك عرض الملفات وتحريرها مباشرة في التطبيق البعيد باستخدام ميزة العرض عن بعد.
في " مستكشف الخادم"، قمبتوسيع Azure، وقم بتوسيع خدمة التطبيق، وقم بتوسيع مجموعة الموارد التي يوجد فيها التطبيق، ثم قم بتوسيع العقدة الخاصة بتطبيقك.
سترى العقد التي تمنحك إمكانية الوصول إلى ملفات محتوى التطبيق وملفات السجل.
قم بتوسيع عقدة الملفات ثم انقر نقرا مزدوجا فوق الملف Web.config .

Visual Studio يفتح الملف Web.config من التطبيق البعيد ويعرض [Remote] بجوار اسم الملف في شريط العنوان.
أضف السطر التالي إلى العنصر
system.web:<customErrors mode="Off"></customErrors>
قم بتحديث المستعرض الذي يعرض رسالة الخطأ غير المفيدة، والآن تتلقى رسالة خطأ مفصلة، مثل المثال التالي:

(تم إنشاء الخطأ المعروض عن طريق إضافة السطر الموضح باللون الأحمر إلى Views\Home\Index.cshtml.)
يعد تحرير ملف Web.config مثالا واحدا فقط على السيناريوهات التي تجعل فيها القدرة على قراءة الملفات وتحريرها على تطبيق App Service استكشاف الأخطاء وإصلاحها أسهل.
تطبيقات تصحيح الأخطاء عن بعد
إذا لم توفر رسالة الخطأ التفصيلية معلومات كافية، ولا يمكنك إعادة إنشاء الخطأ محليا، فهناك طريقة أخرى لاستكشاف الأخطاء وإصلاحها وهي التشغيل في وضع تصحيح الأخطاء عن بعد. يمكنك تعيين نقاط التوقف ، ومعالجة الذاكرة مباشرة ، وخطوة من خلال التعليمات البرمجية ، وحتى تغيير مسار التعليمات البرمجية.
لا يعمل تصحيح الأخطاء عن بعد في إصدارات Express من Visual Studio.
يوضح هذا القسم كيفية تصحيح الأخطاء عن بعد باستخدام المشروع الذي تقوم بإنشائه في إنشاء تطبيق ASP.NET في Azure App Service.
افتح مشروع الويب الذي قمت بإنشائه في إنشاء تطبيق ASP.NET في Azure App Service.
فتح وحدات التحكم\HomeController.cs.
حذف الأسلوب
About()وإدراج التعليمة البرمجية التالية في مكانها.public ActionResult About() { string currentTime = DateTime.Now.ToLongTimeString(); ViewBag.Message = "The current time is " + currentTime; return View(); }تعيين نقطة توقف على
ViewBag.Messageالخط.في مستكشف الحلول، انقر بزر الماوس الأيمن فوق المشروع، ثم انقر فوق نشر.
في القائمة المنسدلة ملف التعريف، حدد نفس ملف التعريف الذي استخدمته في إنشاء تطبيق ASP.NET في Azure App Service. ثم انقر فوق الإعدادات.
في مربع الحوار نشر، انقر فوق علامة التبويب الإعدادات، ثم قم بتغيير التكوين إلى تصحيح، ثم انقر فوق حفظ.

انقر على نشر. بعد انتهاء النشر وفتح المستعرض على عنوان URL ل Azure الخاص بتطبيقك، أغلق المستعرض.
في " مستكشف الخادم"، انقر بزر الماوس الأيمن فوق التطبيق، ثم انقر فوق إرفاق مصحح الأخطاء.
يفتح المستعرض تلقائيا على صفحتك الرئيسية التي تعمل في Azure. قد تضطر إلى الانتظار لمدة 20 ثانية أو نحو ذلك أثناء قيام Azure بإعداد الخادم لتصحيح الأخطاء. يحدث هذا التأخير فقط في المرة الأولى التي يتم فيها التشغيل في وضع تصحيح الأخطاء على تطبيق خلال فترة 48 ساعة. عند بدء تصحيح الأخطاء مرة أخرى في نفس الفترة، لا يوجد تأخير.
ملاحظة
إذا واجهتك أي مشكلة في بدء تشغيل مصحح الأخطاء، فحاول القيام بذلك باستخدام Cloud Explorer بدلا من "مستكشف الخادم".
انقر فوق حول في القائمة.
يتوقف Visual Studio عند نقطة التوقف، ويتم تشغيل التعليمة البرمجية في Azure، وليس على الكمبيوتر المحلي.
مرر مؤشر الماوس
currentTimeفوق المتغير لرؤية القيمة الزمنية.
الوقت الذي تراه هو وقت خادم Azure، والذي قد يكون في منطقة زمنية مختلفة عن الكمبيوتر المحلي.
أدخل قيمة جديدة للمتغير
currentTime، مثل "قيد التشغيل الآن في Azure".اضغط F5 لمتابعة التشغيل.
تعرض الصفحة حول قيد التشغيل في Azure القيمة الجديدة التي أدخلتها في متغير currentTime.

تصحيح الأخطاء عن بعد WebJobs
يوضح هذا القسم كيفية تصحيح الأخطاء عن بعد باستخدام المشروع والتطبيق اللذين تقوم بإنشائهما في بدء الاستخدام باستخدام Azure WebJobs SDK.
تتوفر الميزات المعروضة في هذا القسم فقط في Visual Studio عام 2013 مع التحديث 4 أو الإصدارات الأحدث.
يعمل تصحيح الأخطاء عن بعد فقط مع WebJobs المستمر. لا تدعم WebJobs المجدولة وعند الطلب تصحيح الأخطاء.
افتح مشروع الويب الذي قمت بإنشائه في بدء الاستخدام باستخدام Azure WebJobs SDK.
في مشروع ContosoAdsWebJob، افتح الوظائف.cs.
قم بتعيين نقطة توقف على العبارة الأولى في
GnerateThumbnailالطريقة.
في مستكشف الحلول، انقر بزر الماوس الأيمن فوق مشروع ويب (وليس مشروع WebJob)، ثم انقر فوق نشر.
في القائمة المنسدلة ملف التعريف، حدد نفس ملف التعريف الذي استخدمته في بدء الاستخدام باستخدام Azure WebJobs SDK.
انقر فوق علامة التبويب الإعداداتوقم بتغيير التكوين إلى تصحيح الأخطاء ثم انقر فوق نشر.
Visual Studio بنشر مشاريع الويب وWebJob، ويفتح المستعرض على عنوان URL ل Azure الخاص بتطبيقك.
في مستكشف الخادم، قم بتوسيع Azure > App Service > مجموعة > الموارد الخاصة بك WebJobs >> Continuous، ثم انقر بزر الماوس الأيمن فوق ContosoAdsWebJob.
انقر على إرفاق مصحح الأخطاء.
يفتح المستعرض تلقائيا على صفحتك الرئيسية التي تعمل في Azure. قد تضطر إلى الانتظار لمدة 20 ثانية أو نحو ذلك أثناء قيام Azure بإعداد الخادم لتصحيح الأخطاء. يحدث هذا التأخير فقط في المرة الأولى التي يتم فيها التشغيل في وضع تصحيح الأخطاء على تطبيق خلال فترة 48 ساعة. عند بدء تصحيح الأخطاء مرة أخرى في نفس الفترة، لا يوجد تأخير.
في مستعرض الويب الذي يتم فتحه على الصفحة الرئيسية لإعلانات Contoso، أنشئ إعلانا جديدا.
يؤدي إنشاء إعلان إلى إنشاء رسالة قائمة انتظار، يتم التقاطها بواسطة WebJob ومعالجتها. عندما تستدعي WebJobs SDK الوظيفة لمعالجة رسالة قائمة الانتظار، تصل التعليمة البرمجية إلى نقطة التوقف.
عندما ينكسر مصحح الأخطاء عند نقطة التوقف الخاصة بك ، يمكنك فحص القيم المتغيرة وتغييرها أثناء تشغيل البرنامج للسحابة. في الرسم التوضيحي التالي، يعرض مصحح الأخطاء محتويات كائن blobInfo الذي تم تمريره إلى الطريقة
GenerateThumbnail.
اضغط F5 لمتابعة التشغيل.
تنتهي
GenerateThumbnailالطريقة من إنشاء الصورة المصغرة.في المستعرض، قم بتحديث صفحة الفهرس وسترى الصورة المصغرة.
في Visual Studio، اضغط على SHIFT+F5 لإيقاف تصحيح الأخطاء.
في " مستكشف الخادم"، انقر بزر الماوس الأيمن فوق العقدة ContosoAdsWebJob وانقر فوق عرض لوحة المعلومات.
سجل الدخول باستخدام بيانات اعتماد Azure، ثم انقر فوق اسم WebJob للانتقال إلى صفحة WebJob.

توضح لوحة المعلومات أن الوظيفة التي
GenerateThumbnailتم تنفيذها مؤخرا.(في المرة التالية التي تنقر فيها فوق عرض لوحة المعلومات، لن تضطر إلى تسجيل الدخول، وينتقل المستعرض مباشرة إلى صفحة WebJob.)
انقر فوق اسم الدالة للاطلاع على تفاصيل حول تنفيذ الدالة.

إذا كتبت وظيفتك سجلات ، فيمكنك النقر فوق ToggleOutput لرؤيتها.
ملاحظات حول تصحيح الأخطاء عن بعد
لا ينصح بالتشغيل في وضع التصحيح في الإنتاج. إذا لم يتم توسيع نطاق تطبيق الإنتاج الخاص بك إلى مثيلات خادم متعددة، فإن تصحيح الأخطاء يمنع خادم الويب من الاستجابة للطلبات الأخرى. إذا كان لديك مثيلات خادم ويب متعددة، فعند إرفاقها بمصحح الأخطاء، تحصل على مثيل عشوائي، وليس لديك طريقة للتأكد من أن طلبات المستعرض اللاحقة تنتقل إلى نفس المثيل. أيضا ، لا تقوم عادة بنشر بنية تصحيح الأخطاء إلى الإنتاج ، وقد تجعل تحسينات المحول البرمجي لإصدارات الإصدار من المستحيل إظهار ما يحدث سطرا سطرا في التعليمات البرمجية المصدر. لاستكشاف مشكلات الإنتاج وإصلاحها ، فإن أفضل مورد لديك هو تتبع التطبيقات وسجلات خادم الويب.
تجنب التوقف الطويل عند نقاط التوقف عند تصحيح الأخطاء عن بعد. يعامل Azure عملية يتم إيقافها لفترة أطول من بضع دقائق كعملية لا تستجيب، ويقوم بإيقاف تشغيلها.
أثناء تصحيح الأخطاء، يرسل الخادم البيانات إلى Visual Studio، مما قد يؤثر على رسوم النطاق الترددي. للحصول على معلومات حول معدلات النطاق الترددي، راجع تسعير Azure.
تأكد من
debugتعيين سمة العنصر فيcompilationملف Web.config إلى true. يتم تعيينه إلى true بشكل افتراضي عند نشر تكوين إنشاء تصحيح.<system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web>إذا وجدت أن مصحح الأخطاء لا يخطو إلى التعليمة البرمجية التي تريد تصحيحها، فقد تضطر إلى تغيير إعداد "الرمز الخاص بي فقط". لمزيد من المعلومات، راجع تحديد ما إذا كنت تريد تصحيح أخطاء رمز المستخدم فقط باستخدام "الرمز الخاص بي فقط" في Visual Studio.
يبدأ المؤقت على الخادم عند تمكين ميزة تصحيح الأخطاء عن بعد، وبعد 48 ساعة يتم إيقاف تشغيل الميزة تلقائيا. يتم تنفيذ هذا الحد الأقصى البالغ 48 ساعة لأسباب تتعلق بالأمان والأداء. يمكنك بسهولة إعادة تشغيل الميزة عدة مرات كما تريد. نوصي بتركه معطلا عندما لا تقوم بتصحيح الأخطاء بنشاط.
يمكنك إرفاق مصحح الأخطاء يدويا بأي عملية، وليس فقط عملية التطبيق (w3wp.exe). لمزيد من المعلومات حول كيفية استخدام وضع تصحيح الأخطاء في Visual Studio، راجع تصحيح الأخطاء في Visual Studio.
نظرة عامة على سجلات التشخيص
يمكن لتطبيق ASP.NET الذي يتم تشغيله في تطبيق App Service إنشاء الأنواع التالية من السجلات:
- سجلات تتبع التطبيقات
يقوم التطبيق بإنشاء هذه السجلات عن طريق استدعاء أساليب الفئة System.Diagnostics.Trace. - سجلات خادم الويب
يقوم خادم الويب بإنشاء إدخال سجل لكل طلب HTTP إلى التطبيق. - سجلات رسائل الخطأ التفصيلية
ينشئ خادم الويب صفحة HTML تحتوي على بعض المعلومات الإضافية لطلبات HTTP الفاشلة (الطلبات التي تؤدي إلى رمز الحالة 400 أو أحدث). - فشل سجلات تتبع الطلبات
يقوم خادم الويب بإنشاء ملف XML يحتوي على معلومات تتبع مفصلة لطلبات HTTP الفاشلة. يوفر خادم الويب أيضا ملف XSL لتنسيق XML في مستعرض.
يؤثر التسجيل على أداء التطبيق، لذلك يمنحك Azure القدرة على تمكين كل نوع من أنواع السجلات أو تعطيله حسب الحاجة. بالنسبة لسجلات التطبيقات، يمكنك تحديد أنه يجب كتابة السجلات التي تزيد عن مستوى خطورة معين فقط. عند إنشاء تطبيق جديد، يتم تعطيل كل عمليات التسجيل بشكل افتراضي.
تتم كتابة السجلات إلى ملفات في مجلد LogFiles في نظام الملفات الخاص بتطبيقك ويمكن الوصول إليها عبر FTP. يمكن أيضا كتابة سجلات خادم الويب وسجلات التطبيقات إلى حساب Azure Storage. يمكنك الاحتفاظ بحجم أكبر من السجلات في حساب تخزين مما هو ممكن في نظام الملفات. تقتصر على 100 ميغابايت كحد أقصى من السجلات عند استخدام نظام الملفات. (سجلات نظام الملفات هي فقط للاحتفاظ على المدى القصير. يقوم Azure بحذف ملفات السجل القديمة لإفساح المجال لملفات جديدة بعد الوصول إلى الحد.)
إنشاء سجلات تتبع التطبيقات وعرضها
في هذا القسم، يمكنك القيام بالمهام التالية:
- أضف عبارات التتبع إلى مشروع الويب الذي أنشأته في بدء استخدام Azure و ASP.NET.
- عرض السجلات عند تشغيل المشروع محليا.
- عرض السجلات كما يتم إنشاؤها بواسطة التطبيق الذي يعمل في Azure.
للحصول على معلومات حول كيفية إنشاء سجلات التطبيقات في WebJobs، راجع كيفية العمل مع تخزين قائمة انتظار Azure باستخدام WebJobs SDK - كيفية كتابة السجلات. تنطبق الإرشادات التالية لعرض السجلات والتحكم في كيفية تخزينها في Azure أيضا على سجلات التطبيقات التي تم إنشاؤها بواسطة WebJobs.
إضافة عبارات التتبع إلى التطبيق
افتح وحدات التحكم\HomeController.cs، واستبدل
Index،Aboutوالأساليب بالتعليمة البرمجية التالية لإضافةTraceعبارات وعبارةContactusingعنSystem.Diagnostics:public ActionResult Index() { Trace.WriteLine("Entering Index method"); ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application."; Trace.TraceInformation("Displaying the Index page at " + DateTime.Now.ToLongTimeString()); Trace.WriteLine("Leaving Index method"); return View(); } public ActionResult About() { Trace.WriteLine("Entering About method"); ViewBag.Message = "Your app description page."; Trace.TraceWarning("Transient error on the About page at " + DateTime.Now.ToShortTimeString()); Trace.WriteLine("Leaving About method"); return View(); } public ActionResult Contact() { Trace.WriteLine("Entering Contact method"); ViewBag.Message = "Your contact page."; Trace.TraceError("Fatal error on the Contact page at " + DateTime.Now.ToLongTimeString()); Trace.WriteLine("Leaving Contact method"); return View(); }أضف عبارة
using System.Diagnostics;إلى أعلى الملف.
عرض مخرجات التتبع محليا
اضغط F5 لتشغيل التطبيق في وضع التصحيح.
يكتب مستمع التتبع الافتراضي كل مخرجات التتبع إلى نافذة الإخراج ، إلى جانب مخرجات تصحيح الأخطاء الأخرى. يوضح الرسم التوضيحي التالي المخرجات من عبارات التتبع التي أضفتها إلى الأسلوب
Index.
توضح الخطوات التالية كيفية عرض إخراج التتبع في صفحة ويب، دون التحويل البرمجي في وضع التصحيح.
افتح ملف Web.config التطبيق (الملف الموجود في مجلد المشروع) وأضف عنصرا
<system.diagnostics>في نهاية الملف قبل عنصر الإغلاق</configuration>مباشرة:<system.diagnostics> <trace> <listeners> <add name="WebPageTraceListener" type="System.Web.WebPageTraceListener, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </listeners> </trace> </system.diagnostics>
WebPageTraceListener يتيح لك عرض إخراج التتبع عن طريق التصفح إلى /trace.axd.
إضافة عنصر تتبع ضمن
<system.web>ملف Web.config، مثل المثال التالي:<trace enabled="true" writeToDiagnosticsTrace="true" mostRecent="true" pageOutput="false" />اضغط CTRL + F5 لتشغيل التطبيق.
في شريط العناوين بنافذة المستعرض، أضف trace.axd إلى عنوان URL، ثم اضغط على Enter (عنوان URL مشابه ل
http://localhost:53370/trace.axd).في الصفحة تتبع التطبيق ، انقر فوق عرض التفاصيل في السطر الأول (وليس سطر BrowserLink).
تظهر صفحة تفاصيل الطلب ، وفي قسم تتبع المعلومات سترى الإخراج من عبارات التتبع التي أضفتها إلى
Indexالطريقة.
بشكل افتراضي،
trace.axdيتوفر محليا فقط. إذا كنت ترغب في إتاحته من تطبيق بعيد، فيمكنك إضافتهlocalOnly="false"إلى العنصر الموجودtraceفي ملف Web.config ، كما هو موضح في المثال التالي:<trace enabled="true" writeToDiagnosticsTrace="true" localOnly="false" mostRecent="true" pageOutput="false" />ومع ذلك، لا يوصى بالتمكين
trace.axdفي تطبيق إنتاج لأسباب أمنية. في الأقسام التالية، سترى طريقة أسهل لقراءة سجلات التتبع في تطبيق App Service.
عرض إخراج التتبع في Azure
في مستكشف الحلول، انقر بزر الماوس الأيمن فوق مشروع ويب وانقر فوق نشر.
في مربع الحوار نشر ويب ، انقر فوق نشر.
بعد أن تنشر Visual Studio تحديثك، تفتح نافذة متصفح إلى صفحتك الرئيسية (على افتراض أنك لم تقم بمسحعنوان URL المقصود في علامة التبويب اتصال).
في مستكشف الخوادم، انقر بزر الماوس الأيمن فوق تطبيقك وحدد عرض سجلات البث.
تظهر نافذة الإخراج أنك متصل بخدمة تدفق السجلات ، وتضيف سطر إعلام كل دقيقة يمر بدون سجل لعرضه.
في نافذة المستعرض التي تعرض الصفحة الرئيسية للتطبيق، انقر فوق جهة اتصال.
في غضون بضع ثوان، يظهر الإخراج من تتبع مستوى الخطأ الذي أضفته إلى الطريقة
Contactفي نافذة الإخراج .
Visual Studio يعرض فقط آثار مستوى الخطأ لأن هذا هو الإعداد الافتراضي عند تمكين خدمة مراقبة السجل. عند إنشاء تطبيق App Service جديد، يتم تعطيل كل عمليات التسجيل بشكل افتراضي، كما رأيت عند فتح صفحة الإعدادات في وقت سابق:

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

في نافذة المستعرض التي تعرض الآن صفحة جهة الاتصال ، انقر فوق الصفحة الرئيسية، ثم انقر فوق حول، ثم انقر فوق جهة اتصال.
في غضون ثوان قليلة، تعرض نافذة الإخراج كل مخرجات التتبع.

في هذا القسم، قمت بتمكين التسجيل وتعطيله باستخدام إعدادات التطبيق. يمكنك أيضا تمكين مستمعي التتبع وتعطيلهم عن طريق تعديل ملف Web.config. ومع ذلك، يؤدي تعديل ملف Web.config إلى إعادة تدوير نطاق التطبيق، في حين أن تمكين التسجيل عبر تكوين التطبيق لا يفعل ذلك. إذا استغرقت المشكلة وقتا طويلا لإعادة إنتاجها، أو كانت متقطعة، فقد تؤدي إعادة تدوير نطاق التطبيق إلى "إصلاحها" وإجبارك على الانتظار حتى تحدث مرة أخرى. يتيح لك تمكين التشخيصات في Azure بدء التقاط معلومات الخطأ على الفور دون إعادة تدوير مجال التطبيق.
ميزات نافذة الإخراج
تحتوي علامة التبويب Microsoft Azure Logs في نافذة الإخراج على عدة أزرار ومربع نص:
هذه تؤدي الوظائف التالية:
- قم بمسح نافذة الإخراج .
- تمكين التفاف الكلمات أو تعطيله.
- بدء تشغيل سجلات المراقبة أو إيقافها.
- حدد السجلات التي تريد مراقبتها.
- تنزيل السجلات.
- تصفية السجلات استنادا إلى سلسلة بحث أو تعبير عادي.
- أغلق نافذة الإخراج .
إذا قمت بإدخال سلسلة بحث أو تعبير عادي، Visual Studio تصفية معلومات التسجيل في العميل. هذا يعني أنه يمكنك إدخال المعايير بعد عرض السجلات في نافذة الإخراج ويمكنك تغيير معايير التصفية دون الحاجة إلى إعادة إنشاء السجلات.
عرض سجلات خادم الويب
تسجل سجلات خادم الويب جميع أنشطة HTTP للتطبيق. لرؤيتها في نافذة الإخراج ، يجب تمكينها للتطبيق وإخبار Visual Studio أنك تريد مراقبتها.
في علامة التبويب تكوين Azure Web App التي قمت بفتحها من " مستكشف الخادم"، قم بتغيير تسجيل دخول خادم ويب إلى تشغيل، ثم انقر فوق حفظ.

في نافذة الإخراج ، انقر فوق الزر تحديد سجلات Microsoft Azure التي تريد مراقبتها .

في مربع الحوار خيارات تسجيل Microsoft Azure ، حدد سجلات خادم ويب، ثم انقر فوق موافق.

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

بشكل افتراضي، عند تمكين سجلات خادم الويب لأول مرة باستخدام Visual Studio، يقوم Azure بكتابة السجلات إلى نظام الملفات. كبديل، يمكنك استخدام مدخل Azure لتحديد أنه يجب كتابة سجلات خادم الويب إلى حاوية نقطة في حساب تخزين.
إذا كنت تستخدم البوابة الإلكترونية لتمكين تسجيل خادم الويب إلى حساب تخزين Azure، ثم تعطيل تسجيل الدخول Visual Studio، فعند إعادة تمكين تسجيل الدخول Visual Studio تتم استعادة إعدادات حساب التخزين الخاص بك.
عرض سجلات رسائل الخطأ التفصيلية
توفر سجلات الأخطاء التفصيلية بعض المعلومات الإضافية حول طلبات HTTP التي تؤدي إلى رموز استجابة للخطأ (400 أو أعلى). لرؤيتها في نافذة الإخراج ، يجب عليك تمكينها للتطبيق وإخبار Visual Studio أنك تريد مراقبتها.
في علامة التبويب تكوين Azure Web App التي قمت بفتحها من " مستكشف الخادم"، قم بتغيير رسائل الخطأ التفصيلية إلى تشغيل، ثم انقر فوق حفظ.

في نافذة الإخراج ، انقر فوق الزر تحديد سجلات Microsoft Azure التي تريد مراقبتها .
في مربع الحوار خيارات تسجيل Microsoft Azure ، انقر فوق كافة السجلات ثم انقر فوق موافق.

في شريط العناوين في نافذة المستعرض، أضف حرفا إضافيا إلى عنوان URL للتسبب في حدوث خطأ 404 (على سبيل المثال،
http://localhost:53370/Home/Contactx)، ثم اضغط على مفتاح الإدخال Enter.بعد عدة ثوان ، يظهر سجل الأخطاء التفصيلي في نافذة إخراج Visual Studio.

Control+انقر فوق الارتباط لرؤية إخراج السجل منسقا في مستعرض:

تنزيل سجلات نظام الملفات
يمكن أيضا تنزيل أي سجلات يمكنك مراقبتها في نافذة الإخراج كملف .zip .
في نافذة الإخراج ، انقر فوق تنزيل سجلات البث.
مستكشف الملفات يفتح على مجلد "التنزيلات" مع تحديد الملف الذي تم تنزيله.
استخراج ملف .zip وسترى بنية المجلد التالية:
توجد سجلات تتبع التطبيق في ملفات.txt في المجلد LogFiles\Application .
سجلات خادم ويب موجودة في ملفات .log في المجلد LogFiles\http\RawLogs . يمكنك استخدام أداة مثل Log Parser لعرض هذه الملفات ومعالجتها.
توجد سجلات رسائل الخطأ التفصيلية في ملفات.html في المجلد LogFiles\DetailedErrors .
(مجلد عمليات النشر مخصص للملفات التي تم إنشاؤها بواسطة نشر التحكم في المصدر ؛ لا يحتوي على أي شيء متعلق بالنشر Visual Studio. المجلد Git مخصص للآثار المتعلقة بنشر عنصر تحكم المصدر وخدمة دفق ملفات السجل.)
عرض سجلات تتبع الطلبات الفاشلة
تكون سجلات تتبع الطلبات الفاشلة مفيدة عندما تحتاج إلى فهم تفاصيل كيفية تعامل IIS مع طلب HTTP، في سيناريوهات مثل إعادة كتابة عنوان URL أو مشاكل المصادقة.
تستخدم تطبيقات App Service نفس وظيفة تتبع الطلبات الفاشلة المتوفرة مع IIS 7.0 والإصدارات الأحدث. ومع ذلك، ليس لديك حق الوصول إلى إعدادات IIS التي تقوم بتكوين الأخطاء التي يتم تسجيلها. عند تمكين تتبع الطلبات الفاشلة، يتم التقاط جميع الأخطاء.
يمكنك تمكين تتبع الطلبات الفاشلة باستخدام Visual Studio، ولكن لا يمكنك عرضها في Visual Studio. هذه السجلات هي ملفات XML. تراقب خدمة سجل البث فقط الملفات التي تعتبر قابلة للقراءة في وضع النص العادي: ملفات.txt.htmlوملفات .log.
يمكنك عرض سجلات تتبع الطلبات الفاشلة في مستعرض مباشرة عبر FTP أو محليا بعد استخدام أداة FTP لتنزيلها على الكمبيوتر المحلي. في هذا القسم، ستعرضها في متصفح مباشرة.
في علامة التبويب تكوين من نافذة Azure Web App التي قمت بفتحها من مستكشف الخادم، قم بتغيير تتبع الطلبات الفاشلة إلى تشغيل، ثم انقر فوق حفظ.

في شريط العناوين في نافذة المتصفح التي تعرض التطبيق، أضف حرفا إضافيا إلى عنوان URL وانقر على Enter للتسبب في حدوث خطأ 404.
يؤدي هذا إلى إنشاء سجل تتبع طلب فاشل، وتوضح الخطوات التالية كيفية عرض السجل أو تنزيله.
في Visual Studio، في علامة التبويب تكوين في نافذة Azure Web App، انقر فوق فتح في مدخل الإدارة.
في مدخل Azureالإعدادات صفحة لتطبيقك، انقر فوق بيانات اعتماد النشر، ثم أدخل اسم مستخدم وكلمة مرور جديدين.

ملاحظة
عند تسجيل الدخول ، يجب عليك استخدام اسم المستخدم الكامل مع اسم التطبيق المسبوق به. على سبيل المثال، إذا قمت بإدخال "myid" كاسم مستخدم وكان الموقع هو "myexample"، يمكنك تسجيل الدخول باسم "myexample\myid".
في نافذة مستعرض جديدة، انتقل إلى عنوان URL الذي يظهر ضمن اسم مضيف FTP أو اسم مضيف FTPS في صفحة نظرة عامة لتطبيقك.
سجل الدخول باستخدام بيانات اعتماد FTP التي أنشأتها سابقا (بما في ذلك بادئة اسم التطبيق لاسم المستخدم).
يعرض المتصفح المجلد الجذر للتطبيق.
افتح المجلد LogFiles .

افتح المجلد المسمى W3SVC بالإضافة إلى قيمة رقمية.

يحتوي المجلد على ملفات XML لأية أخطاء تم تسجيلها بعد تمكين تتبع الطلبات الفاشلة، وملف XSL يمكن للمستعرض استخدامه لتنسيق XML.

انقر فوق ملف XML للطلب الفاشل الذي تريد رؤية معلومات التتبع الخاصة به.
يوضح الرسم التوضيحي التالي جزءا من معلومات التتبع لخطأ عينة.

الخطوات التالية
لقد رأيت كيف يسهل Visual Studio عرض السجلات التي تم إنشاؤها بواسطة تطبيق App Service. توفر الأقسام التالية روابط لمزيد من الموارد حول الموضوعات ذات الصلة:
- استكشاف أخطاء خدمة التطبيقات وإصلاحها
- تصحيح الأخطاء في Visual Studio
- تصحيح الأخطاء عن بعد في Azure
- التتبع في التطبيقات ASP.NET
- تحليل سجلات خادم الويب
- تحليل سجلات تتبع الطلبات الفاشلة
- تصحيح أخطاء الخدمات السحابية
استكشاف أخطاء خدمة التطبيقات وإصلاحها
لمزيد من المعلومات حول استكشاف أخطاء التطبيقات وإصلاحها في Azure App Service، راجع الموارد التالية:
- كيفية مراقبة التطبيقات
- التحقيق في تسرب الذاكرة في خدمة تطبيقات Azure باستخدام Visual Studio 2013. منشور مدونة Microsoft ALM حول ميزات Visual Studio لتحليل مشكلات الذاكرة المدارة.
- أدوات Azure App Service عبر الإنترنت التي يجب أن تعرفها. بلوق وظيفة من قبل أميت أبل.
للحصول على تعليمات حول سؤال معين لاستكشاف الأخطاء وإصلاحها، ابدأ سلسلة محادثات في أحد المنتديات التالية:
تصحيح الأخطاء في Visual Studio
لمزيد من المعلومات حول كيفية استخدام وضع التصحيح في Visual Studio، راجع تصحيح الأخطاء في Visual Studio وتصحيح الأخطاء تلميحات مع Visual Studio 2010.
تصحيح الأخطاء عن بعد في Azure
لمزيد من المعلومات حول تصحيح الأخطاء عن بعد لتطبيقات App Service وWebJobs، راجع الموارد التالية:
- مقدمة حول تصحيح الأخطاء عن بعد Azure App Service.
- مقدمة حول تصحيح الأخطاء عن بعد Azure App Service الجزء 2 - داخل تصحيح الأخطاء عن بعد
- مقدمة حول تصحيح الأخطاء عن بعد في الجزء 3 من خدمة تطبيقات Azure - بيئة متعددة المثيلات وGIT
- تصحيح أخطاء WebJobs (فيديو)
إذا كان تطبيقك يستخدم واجهة برمجة تطبيقات Azure Web API أو الواجهة الخلفية لخدمات الجوال وكنت بحاجة إلى تصحيح أخطاء ذلك، فراجع تصحيح أخطاء الواجهة الخلفية .NET في Visual Studio.
التتبع في التطبيقات ASP.NET
لا توجد مقدمات شاملة وحديثة لتتبع ASP.NET متاحة على الإنترنت. أفضل ما يمكنك فعله هو البدء في المواد التمهيدية القديمة المكتوبة نماذج ويب لأن MVC لم تكن موجودة بعد ، واستكمال ذلك بمشاركات مدونة أحدث تركز على مشكلات محددة. بعض الأماكن الجيدة للبدء هي الموارد التالية:
المراقبة والقياس عن بعد (إنشاء تطبيقات سحابية Real-World باستخدام Azure).
فصل الكتاب الإلكتروني مع توصيات للتتبع في تطبيقات Azure السحابية.تتبع ASP.NET
قديم ولكن لا يزال موردا جيدا لمقدمة أساسية للموضوع.تتبع المستمعين
معلومات حول مستمعي التتبع ولكنها لا تذكر WebPageTraceListener.الإرشادات التفصيلية: دمج تتبع ASP.NET مع تتبع System.Diagnostics
هذه المقالة قديمة أيضا، ولكنها تتضمن بعض المعلومات الإضافية التي لا تغطيها المقالة التمهيدية.التتبع في ASP.NET MVC Razor View
إلى جانب التتبع في طرق عرض Razor ، يشرح المنشور أيضا كيفية إنشاء عامل تصفية خطأ لتسجيل جميع الاستثناءات غير المعالجة في تطبيق MVC. لمزيد من المعلومات حول كيفية تسجيل كافة الاستثناءات التي لم تتم معالجتها في تطبيق نماذج ويب، راجع المثال Global.asax في مثال كامل لمعالجات الأخطاء على MSDN. في MVC أو نماذج ويب ، إذا كنت ترغب في تسجيل استثناءات معينة ولكن السماح لمعالجة الإطار الافتراضي بالدخول حيز التنفيذ بالنسبة لهم ، فيمكنك التقاط وإعادة الإسقاط كما في المثال التالي:try { // Your code that might cause an exception to be thrown. } catch (Exception ex) { Trace.TraceError("Exception: " + ex.ToString()); throw; }تتبع تشخيصات التدفق من سطر أوامر Azure (بالإضافة إلى لمحة!)
كيفية استخدام سطر الأوامر للقيام بما يوضحه هذا البرنامج التعليمي كيفية القيام به في Visual Studio. Glimpse هي أداة لتصحيح أخطاء التطبيقات ASP.NET.استخدام تسجيل تطبيقات الويب والتشخيص - مع David Ebbo وسجلات البث من تطبيقات الويب - مع David Ebbo
مقاطع فيديو من تأليف سكوت هانسلمان وديفيد إيبو.
لتسجيل الأخطاء ، فإن البديل لكتابة رمز التتبع الخاص بك هو استخدام إطار تسجيل مفتوح المصدر مثل ELMAH. لمزيد من المعلومات، راجع منشورات مدونة سكوت هانسلمان حول ELMAH.
أيضا، لا تحتاج إلى استخدام ASP.NET أو System.Diagnostics التتبع للحصول على سجلات البث من Azure. تقوم خدمة سجل دفق تطبيق App Service بدفق أي ملف.txtأو .htmlأو .log تعثر عليه في مجلد LogFiles . لذلك ، يمكنك إنشاء نظام تسجيل خاص بك يكتب إلى نظام الملفات الخاص بالتطبيق ، ويتم دفق ملفك وتنزيله تلقائيا. كل ما عليك فعله هو كتابة رمز التطبيق الذي ينشئ ملفات في المجلد d:\home\logfiles .
تحليل سجلات خادم الويب
لمزيد من المعلومات حول تحليل سجلات خادم الويب، راجع الموارد التالية:
- لوجبارسر
أداة لعرض البيانات في سجلات خادم الويب (ملفات .log ). - استكشاف مشكلات أداء IIS أو أخطاء التطبيق وإصلاحها باستخدام LogParser
مقدمة إلى أداة محلل السجل التي يمكنك استخدامها لتحليل سجلات خادم الويب. - مشاركات المدونة التي كتبها روبرت ماكموري حول استخدام LogParser
- رمز حالة HTTP في IIS 7.0 و IIS 7.5 و IIS 8.0
تحليل سجلات تتبع الطلبات الفاشلة
يتضمن موقع Microsoft TechNet على ويب قسم استخدام تتبع الطلبات الفاشلة ، والذي قد يكون مفيدا لفهم كيفية استخدام هذه السجلات. ومع ذلك، تركز هذه الوثائق بشكل أساسي على تكوين تتبع الطلبات الفاشلة في IIS، وهو ما لا يمكنك القيام به في Azure App Service.