استكشاف أخطاء تطبيق في 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 أيضا. يمكنك فتح كلا النافذتين من القائمة عرض .

  1. إذا لم تكن قد سجلت الدخول بالفعل إلى Azure في Visual Studio، فانقر بزر الماوس الأيمن فوق Azure وحدد الاتصال إلى اشتراك Microsoft Azure في مستكشف الخادم.

    البديل هو تثبيت شهادة إدارة تمكن من الوصول إلى حسابك. إذا اخترت تثبيت شهادة، فانقر بزر الماوس الأيمن فوق عقدة Azure في مستكشف الخادم، ثم حدد إدارة الاشتراكات وتصفيتها في قائمة السياق. في مربع الحوار إدارة اشتراكات Microsoft Azure ، انقر فوق علامة التبويب شهادات ثم انقر فوق استيراد. اتبع الإرشادات لتنزيل ملف اشتراك ثم استيراده (يسمى أيضا ملف . publishsettings ) لحساب Azure الخاص بك.

    ملاحظة

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

    لمزيد من المعلومات حول الاتصال بموارد Azure من Visual Studio، راجع تعيين أدوار Azure باستخدام مدخل Azure.

  2. في " مستكشف الخادم"، قم بتوسيع Azure وقم بتوسيع خدمة التطبيق.

  3. قم بتوسيع مجموعة الموارد التي تتضمن التطبيق الذي قمت بإنشائه في إنشاء تطبيق ASP.NET في Azure App Service، ثم انقر بزر الماوس الأيمن فوق عقدة التطبيق وانقر فوق عرض الإعدادات.

    View Settings in Server Explorer

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

    Azure Web App window

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

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

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

الوصول إلى ملفات التطبيق في مستكشف الخادم

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

خطأ في الخادم في تطبيق '/':

Screenshot showing a Server Error in '/' Application error in a web browser.

حدث خطأ:

Screenshot showing an example of a generic error occurring in a web browser.

يتعذر على موقع الويب عرض الصفحة

Screenshot showing a message that reads **The website cannot display the page error in a web browser**.

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

  1. في " مستكشف الخادم"، قمبتوسيع Azure، وقم بتوسيع خدمة التطبيق، وقم بتوسيع مجموعة الموارد التي يوجد فيها التطبيق، ثم قم بتوسيع العقدة الخاصة بتطبيقك.

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

  2. قم بتوسيع عقدة الملفات ثم انقر نقرا مزدوجا فوق الملف Web.config .

    Open Web.config

    Visual Studio يفتح الملف Web.config من التطبيق البعيد ويعرض [Remote] بجوار اسم الملف في شريط العنوان.

  3. أضف السطر التالي إلى العنصر system.web :

    <customErrors mode="Off"></customErrors>

    Edit Web.config

  4. قم بتحديث المستعرض الذي يعرض رسالة الخطأ غير المفيدة، والآن تتلقى رسالة خطأ مفصلة، مثل المثال التالي:

    Detailed error message

    (تم إنشاء الخطأ المعروض عن طريق إضافة السطر الموضح باللون الأحمر إلى Views\Home\Index.cshtml.)

يعد تحرير ملف Web.config مثالا واحدا فقط على السيناريوهات التي تجعل فيها القدرة على قراءة الملفات وتحريرها على تطبيق App Service استكشاف الأخطاء وإصلاحها أسهل.

تطبيقات تصحيح الأخطاء عن بعد

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

لا يعمل تصحيح الأخطاء عن بعد في إصدارات Express من Visual Studio.

يوضح هذا القسم كيفية تصحيح الأخطاء عن بعد باستخدام المشروع الذي تقوم بإنشائه في إنشاء تطبيق ASP.NET في Azure App Service.

  1. افتح مشروع الويب الذي قمت بإنشائه في إنشاء تطبيق ASP.NET في Azure App Service.

  2. فتح وحدات التحكم\HomeController.cs.

  3. حذف الأسلوب About() وإدراج التعليمة البرمجية التالية في مكانها.

    public ActionResult About()
    {
        string currentTime = DateTime.Now.ToLongTimeString();
        ViewBag.Message = "The current time is " + currentTime;
        return View();
    }
    
  4. تعيين نقطة توقف على ViewBag.Message الخط.

  5. في مستكشف الحلول، انقر بزر الماوس الأيمن فوق المشروع، ثم انقر فوق نشر.

  6. في القائمة المنسدلة ملف التعريف، حدد نفس ملف التعريف الذي استخدمته في إنشاء تطبيق ASP.NET في Azure App Service. ثم انقر فوق الإعدادات.

  7. في مربع الحوار نشر، انقر فوق علامة التبويب الإعدادات، ثم قم بتغيير التكوين إلى تصحيح، ثم انقر فوق حفظ.

    Publish in debug mode

  8. انقر على نشر. بعد انتهاء النشر وفتح المستعرض على عنوان URL ل Azure الخاص بتطبيقك، أغلق المستعرض.

  9. في " مستكشف الخادم"، انقر بزر الماوس الأيمن فوق التطبيق، ثم انقر فوق إرفاق مصحح الأخطاء.

    Screenshot of the Server Explorer window showing an app selected and then clicking Attach Debugger.

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

    ملاحظة

    إذا واجهتك أي مشكلة في بدء تشغيل مصحح الأخطاء، فحاول القيام بذلك باستخدام Cloud Explorer بدلا من "مستكشف الخادم".

  10. انقر فوق حول في القائمة.

    يتوقف Visual Studio عند نقطة التوقف، ويتم تشغيل التعليمة البرمجية في Azure، وليس على الكمبيوتر المحلي.

  11. مرر مؤشر الماوس currentTime فوق المتغير لرؤية القيمة الزمنية.

    View variable in debug mode running in Azure

    الوقت الذي تراه هو وقت خادم Azure، والذي قد يكون في منطقة زمنية مختلفة عن الكمبيوتر المحلي.

  12. أدخل قيمة جديدة للمتغير currentTime ، مثل "قيد التشغيل الآن في Azure".

  13. اضغط F5 لمتابعة التشغيل.

    تعرض الصفحة حول قيد التشغيل في Azure القيمة الجديدة التي أدخلتها في متغير currentTime.

    About page with new value

تصحيح الأخطاء عن بعد WebJobs

يوضح هذا القسم كيفية تصحيح الأخطاء عن بعد باستخدام المشروع والتطبيق اللذين تقوم بإنشائهما في بدء الاستخدام باستخدام Azure WebJobs SDK.

تتوفر الميزات المعروضة في هذا القسم فقط في Visual Studio عام 2013 مع التحديث 4 أو الإصدارات الأحدث.

يعمل تصحيح الأخطاء عن بعد فقط مع WebJobs المستمر. لا تدعم WebJobs المجدولة وعند الطلب تصحيح الأخطاء.

  1. افتح مشروع الويب الذي قمت بإنشائه في بدء الاستخدام باستخدام Azure WebJobs SDK.

  2. في مشروع ContosoAdsWebJob، افتح الوظائف.cs.

  3. قم بتعيين نقطة توقف على العبارة الأولى في GnerateThumbnail الطريقة.

    Set breakpoint

  4. في مستكشف الحلول، انقر بزر الماوس الأيمن فوق مشروع ويب (وليس مشروع WebJob)، ثم انقر فوق نشر.

  5. في القائمة المنسدلة ملف التعريف، حدد نفس ملف التعريف الذي استخدمته في بدء الاستخدام باستخدام Azure WebJobs SDK.

  6. انقر فوق علامة التبويب الإعداداتوقم بتغيير التكوين إلى تصحيح الأخطاء ثم انقر فوق نشر.

    Visual Studio بنشر مشاريع الويب وWebJob، ويفتح المستعرض على عنوان URL ل Azure الخاص بتطبيقك.

  7. في مستكشف الخادم، قم بتوسيع Azure > App Service > مجموعة > الموارد الخاصة بك WebJobs >> Continuous، ثم انقر بزر الماوس الأيمن فوق ContosoAdsWebJob.

  8. انقر على إرفاق مصحح الأخطاء.

    Screenshot of Server Explorer showing ContosoAdsWebJob selected in the drop-down menu and Attach Debugger selected.

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

  9. في مستعرض الويب الذي يتم فتحه على الصفحة الرئيسية لإعلانات Contoso، أنشئ إعلانا جديدا.

    يؤدي إنشاء إعلان إلى إنشاء رسالة قائمة انتظار، يتم التقاطها بواسطة WebJob ومعالجتها. عندما تستدعي WebJobs SDK الوظيفة لمعالجة رسالة قائمة الانتظار، تصل التعليمة البرمجية إلى نقطة التوقف.

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

    blobInfo object in debugger

  11. اضغط F5 لمتابعة التشغيل.

    تنتهي GenerateThumbnail الطريقة من إنشاء الصورة المصغرة.

  12. في المستعرض، قم بتحديث صفحة الفهرس وسترى الصورة المصغرة.

  13. في Visual Studio، اضغط على SHIFT+F5 لإيقاف تصحيح الأخطاء.

  14. في " مستكشف الخادم"، انقر بزر الماوس الأيمن فوق العقدة ContosoAdsWebJob وانقر فوق عرض لوحة المعلومات.

  15. سجل الدخول باستخدام بيانات اعتماد Azure، ثم انقر فوق اسم WebJob للانتقال إلى صفحة WebJob.

    Click ContosoAdsWebJob

    توضح لوحة المعلومات أن الوظيفة التي GenerateThumbnail تم تنفيذها مؤخرا.

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

  16. انقر فوق اسم الدالة للاطلاع على تفاصيل حول تنفيذ الدالة.

    Function details

إذا كتبت وظيفتك سجلات ، فيمكنك النقر فوق 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.

إضافة عبارات التتبع إلى التطبيق

  1. افتح وحدات التحكم\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();
    }        
    
  2. أضف عبارة using System.Diagnostics; إلى أعلى الملف.

عرض مخرجات التتبع محليا

  1. اضغط F5 لتشغيل التطبيق في وضع التصحيح.

    يكتب مستمع التتبع الافتراضي كل مخرجات التتبع إلى نافذة الإخراج ، إلى جانب مخرجات تصحيح الأخطاء الأخرى. يوضح الرسم التوضيحي التالي المخرجات من عبارات التتبع التي أضفتها إلى الأسلوب Index .

    Tracing in Debug window

    توضح الخطوات التالية كيفية عرض إخراج التتبع في صفحة ويب، دون التحويل البرمجي في وضع التصحيح.

  2. افتح ملف 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.

  1. إضافة عنصر تتبع ضمن <system.web> ملف Web.config، مثل المثال التالي:

    <trace enabled="true" writeToDiagnosticsTrace="true" mostRecent="true" pageOutput="false" />
    
  2. اضغط CTRL + F5 لتشغيل التطبيق.

  3. في شريط العناوين بنافذة المستعرض، أضف trace.axd إلى عنوان URL، ثم اضغط على Enter (عنوان URL مشابه ل http://localhost:53370/trace.axd).

  4. في الصفحة تتبع التطبيق ، انقر فوق عرض التفاصيل في السطر الأول (وليس سطر BrowserLink).

    Screenshot of the Application Trace page in a web browser showing View Details selected on the first line.

    تظهر صفحة تفاصيل الطلب ، وفي قسم تتبع المعلومات سترى الإخراج من عبارات التتبع التي أضفتها إلى Index الطريقة.

    Screenshot of the Request Details page in a web browser showing a message highlighted in the Trace Information section.

    بشكل افتراضي، trace.axd يتوفر محليا فقط. إذا كنت ترغب في إتاحته من تطبيق بعيد، فيمكنك إضافته localOnly="false" إلى العنصر الموجود trace في ملف Web.config ، كما هو موضح في المثال التالي:

    <trace enabled="true" writeToDiagnosticsTrace="true" localOnly="false" mostRecent="true" pageOutput="false" />
    

    ومع ذلك، لا يوصى بالتمكين trace.axd في تطبيق إنتاج لأسباب أمنية. في الأقسام التالية، سترى طريقة أسهل لقراءة سجلات التتبع في تطبيق App Service.

عرض إخراج التتبع في Azure

  1. في مستكشف الحلول، انقر بزر الماوس الأيمن فوق مشروع ويب وانقر فوق نشر.

  2. في مربع الحوار نشر ويب ، انقر فوق نشر.

    بعد أن تنشر Visual Studio تحديثك، تفتح نافذة متصفح إلى صفحتك الرئيسية (على افتراض أنك لم تقم بمسحعنوان URL المقصود في علامة التبويب اتصال).

  3. في مستكشف الخوادم، انقر بزر الماوس الأيمن فوق تطبيقك وحدد عرض سجلات البث.

    Screenshot of Server Explorer after right-clicking your app, with View Streaming Logs selected in a new window.

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

    Screenshot of the Output window showing an example of a connection to a log-streaming service with notification lines.

  4. في نافذة المستعرض التي تعرض الصفحة الرئيسية للتطبيق، انقر فوق جهة اتصال.

    في غضون بضع ثوان، يظهر الإخراج من تتبع مستوى الخطأ الذي أضفته إلى الطريقة Contact في نافذة الإخراج .

    Error trace in Output window

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

    Application Logging off

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

  5. في "مستكشف الخادم"، انقر بزر الماوس الأيمن فوق التطبيق، ثم انقر فوق عرض الإعدادات كما فعلت سابقا.

  6. تغيير تسجيل التطبيق (نظام الملفات) إلى مطول ثم انقر فوق حفظ.

    Setting trace level to Verbose

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

    في غضون ثوان قليلة، تعرض نافذة الإخراج كل مخرجات التتبع.

    Verbose trace output

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

ميزات نافذة الإخراج

تحتوي علامة التبويب Microsoft Azure Logs في نافذة الإخراج على عدة أزرار ومربع نص:

Screenshot showing the buttons and text box of the Microsoft Azure Logs tab in the Output window.

هذه تؤدي الوظائف التالية:

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

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

عرض سجلات خادم الويب

تسجل سجلات خادم الويب جميع أنشطة HTTP للتطبيق. لرؤيتها في نافذة الإخراج ، يجب تمكينها للتطبيق وإخبار Visual Studio أنك تريد مراقبتها.

  1. في علامة التبويب تكوين Azure Web App التي قمت بفتحها من " مستكشف الخادم"، قم بتغيير تسجيل دخول خادم ويب إلى تشغيل، ثم انقر فوق حفظ.

    Enable web server logging

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

    Specify which Azure logs to monitor

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

    Monitor web server logs

  4. في نافذة المستعرض التي تعرض التطبيق، انقر على الصفحة الرئيسية، ثم انقر على حول، ثم انقر على جهة اتصال.

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

    Web server logs in Output window

بشكل افتراضي، عند تمكين سجلات خادم الويب لأول مرة باستخدام Visual Studio، يقوم Azure بكتابة السجلات إلى نظام الملفات. كبديل، يمكنك استخدام مدخل Azure لتحديد أنه يجب كتابة سجلات خادم الويب إلى حاوية نقطة في حساب تخزين.

إذا كنت تستخدم البوابة الإلكترونية لتمكين تسجيل خادم الويب إلى حساب تخزين Azure، ثم تعطيل تسجيل الدخول Visual Studio، فعند إعادة تمكين تسجيل الدخول Visual Studio تتم استعادة إعدادات حساب التخزين الخاص بك.

عرض سجلات رسائل الخطأ التفصيلية

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

  1. في علامة التبويب تكوين Azure Web App التي قمت بفتحها من " مستكشف الخادم"، قم بتغيير رسائل الخطأ التفصيلية إلى تشغيل، ثم انقر فوق حفظ.

    Enable detailed error messages

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

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

    Monitor all logs

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

    بعد عدة ثوان ، يظهر سجل الأخطاء التفصيلي في نافذة إخراج Visual Studio.

    Detailed error log - Output window

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

    Detailed error log - browser window

تنزيل سجلات نظام الملفات

يمكن أيضا تنزيل أي سجلات يمكنك مراقبتها في نافذة الإخراج كملف .zip .

  1. في نافذة الإخراج ، انقر فوق تنزيل سجلات البث.

    Screenshot of the Output window showing the Download Streaming Logs button highlighted.

    مستكشف الملفات يفتح على مجلد "التنزيلات" مع تحديد الملف الذي تم تنزيله.

    Screenshot of the Downloads folder in File Explorer with a downloaded file selected.

  2. استخراج ملف .zip وسترى بنية المجلد التالية:

    Screenshot of the .zip file folder structure after the file has been extracted.

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

  1. في علامة التبويب تكوين من نافذة Azure Web App التي قمت بفتحها من مستكشف الخادم، قم بتغيير تتبع الطلبات الفاشلة إلى تشغيل، ثم انقر فوق حفظ.

    Enable failed request tracing

  2. في شريط العناوين في نافذة المتصفح التي تعرض التطبيق، أضف حرفا إضافيا إلى عنوان URL وانقر على Enter للتسبب في حدوث خطأ 404.

    يؤدي هذا إلى إنشاء سجل تتبع طلب فاشل، وتوضح الخطوات التالية كيفية عرض السجل أو تنزيله.

  3. في Visual Studio، في علامة التبويب تكوين في نافذة Azure Web App، انقر فوق فتح في مدخل الإدارة.

  4. في مدخل Azureالإعدادات صفحة لتطبيقك، انقر فوق بيانات اعتماد النشر، ثم أدخل اسم مستخدم وكلمة مرور جديدين.

    New FTP user name and password

    ملاحظة

    عند تسجيل الدخول ، يجب عليك استخدام اسم المستخدم الكامل مع اسم التطبيق المسبوق به. على سبيل المثال، إذا قمت بإدخال "myid" كاسم مستخدم وكان الموقع هو "myexample"، يمكنك تسجيل الدخول باسم "myexample\myid".

  5. في نافذة مستعرض جديدة، انتقل إلى عنوان URL الذي يظهر ضمن اسم مضيف FTP أو اسم مضيف FTPS في صفحة نظرة عامة لتطبيقك.

  6. سجل الدخول باستخدام بيانات اعتماد FTP التي أنشأتها سابقا (بما في ذلك بادئة اسم التطبيق لاسم المستخدم).

    يعرض المتصفح المجلد الجذر للتطبيق.

  7. افتح المجلد LogFiles .

    Open LogFiles folder

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

    Open W3SVC folder

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

    W3SVC folder

  9. انقر فوق ملف XML للطلب الفاشل الذي تريد رؤية معلومات التتبع الخاصة به.

    يوضح الرسم التوضيحي التالي جزءا من معلومات التتبع لخطأ عينة.

    Failed request tracing in browser

الخطوات التالية

لقد رأيت كيف يسهل Visual Studio عرض السجلات التي تم إنشاؤها بواسطة تطبيق App Service. توفر الأقسام التالية روابط لمزيد من الموارد حول الموضوعات ذات الصلة:

  • استكشاف أخطاء خدمة التطبيقات وإصلاحها
  • تصحيح الأخطاء في Visual Studio
  • تصحيح الأخطاء عن بعد في Azure
  • التتبع في التطبيقات ASP.NET
  • تحليل سجلات خادم الويب
  • تحليل سجلات تتبع الطلبات الفاشلة
  • تصحيح أخطاء الخدمات السحابية

استكشاف أخطاء خدمة التطبيقات وإصلاحها

لمزيد من المعلومات حول استكشاف أخطاء التطبيقات وإصلاحها في Azure App Service، راجع الموارد التالية:

للحصول على تعليمات حول سؤال معين لاستكشاف الأخطاء وإصلاحها، ابدأ سلسلة محادثات في أحد المنتديات التالية:

تصحيح الأخطاء في Visual Studio

لمزيد من المعلومات حول كيفية استخدام وضع التصحيح في Visual Studio، راجع تصحيح الأخطاء في Visual Studio وتصحيح الأخطاء تلميحات مع Visual Studio 2010.

تصحيح الأخطاء عن بعد في Azure

لمزيد من المعلومات حول تصحيح الأخطاء عن بعد لتطبيقات App Service وWebJobs، راجع الموارد التالية:

إذا كان تطبيقك يستخدم واجهة برمجة تطبيقات Azure Web API أو الواجهة الخلفية لخدمات الجوال وكنت بحاجة إلى تصحيح أخطاء ذلك، فراجع تصحيح أخطاء الواجهة الخلفية .NET في Visual Studio.

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

لا توجد مقدمات شاملة وحديثة لتتبع ASP.NET متاحة على الإنترنت. أفضل ما يمكنك فعله هو البدء في المواد التمهيدية القديمة المكتوبة نماذج ويب لأن MVC لم تكن موجودة بعد ، واستكمال ذلك بمشاركات مدونة أحدث تركز على مشكلات محددة. بعض الأماكن الجيدة للبدء هي الموارد التالية:

لتسجيل الأخطاء ، فإن البديل لكتابة رمز التتبع الخاص بك هو استخدام إطار تسجيل مفتوح المصدر مثل ELMAH. لمزيد من المعلومات، راجع منشورات مدونة سكوت هانسلمان حول ELMAH.

أيضا، لا تحتاج إلى استخدام ASP.NET أو System.Diagnostics التتبع للحصول على سجلات البث من Azure. تقوم خدمة سجل دفق تطبيق App Service بدفق أي ملف.txtأو .htmlأو .log تعثر عليه في مجلد LogFiles . لذلك ، يمكنك إنشاء نظام تسجيل خاص بك يكتب إلى نظام الملفات الخاص بالتطبيق ، ويتم دفق ملفك وتنزيله تلقائيا. كل ما عليك فعله هو كتابة رمز التطبيق الذي ينشئ ملفات في المجلد d:\home\logfiles .

تحليل سجلات خادم الويب

لمزيد من المعلومات حول تحليل سجلات خادم الويب، راجع الموارد التالية:

تحليل سجلات تتبع الطلبات الفاشلة

يتضمن موقع Microsoft TechNet على ويب قسم استخدام تتبع الطلبات الفاشلة ، والذي قد يكون مفيدا لفهم كيفية استخدام هذه السجلات. ومع ذلك، تركز هذه الوثائق بشكل أساسي على تكوين تتبع الطلبات الفاشلة في IIS، وهو ما لا يمكنك القيام به في Azure App Service.