تصحيح الاستثناءات في تطبيقات .NET باستخدام Snapshot Debugger

باستخدام Snapshot Debugger، يمكنك تلقائيا جمع لقطة تتبع الأخطاء عند حدوث استثناء في تطبيق .NET المباشر. تظهر لقطات تتبع الأخطاء التي تم جمعها حالة التعليمات البرمجية للمصدر والمتغيرات في اللحظة التي تم فيها طرح الاستثناء.

Snapshot Debugger في Application Insights:

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

تعرف على المزيد حول عمليات Snapshot Debugger و Snapshot Uploader.

التطبيقات والبيئات المدعومة

يسرد هذا القسم التطبيقات والبيئات المدعومة.

التطبيقات

تتوفر مجموعة اللقطات من أجل:

البيئات

يتم دعم البيئات التالية:

إشعار

تطبيقات العميل (على سبيل المثال، WPF أو Windows Forms أو UWP) غير مدعومة.

المتطلبات الأساسية لاستخدام Snapshot Debugger

الحزم والتكوينات

  • قم بتضمين حزمة NuGet ل Snapshot Collector في التطبيق الخاص بك.
  • تكوين معلمات المجموعة في ApplicationInsights.config.

الأذونات

كيفية عمل Snapshot Debugger

يتم تنفيذ Snapshot Debugger كمعالج بيانات تتبع الاستخدام Application Insights. عند تشغيل التطبيق الخاص بك، تتم إضافة معالج بيانات تتبع الاستخدام Snapshot Debugger إلى البنية الأساسية لبرنامج ربط العمليات التجارية للسجلات التي تم إنشاؤها بواسطة النظام للتطبيق الخاص بك.

هام

قد تحتوي اللقطات على بيانات شخصية أو معلومات حساسة أخرى في قيم المتغيرات والمعلمات. يتم تخزين بيانات اللقطة في نفس المنطقة مثل مورد Application Insights.

عملية Snapshot Debugger

تبدأ عملية Snapshot Debugger وتنتهي بالأسلوب TrackException . لقطة العملية هي نسخة موقوفة مؤقتا من العملية قيد التشغيل، بحيث يواجه المستخدمون انقطاعا ضئيلا أو معدوما.

  1. يطرح TrackExceptionالتطبيق الخاص بك .

  2. يراقب Snapshot Debugger الاستثناءات أثناء طرحها عن طريق الاشتراك في AppDomain.CurrentDomain.FirstChanceException الحدث.

  3. يتم زيادة عداد لمعرف المشكلة.

    • عندما يصل العداد إلى ThresholdForSnapshotting القيمة، تتم إضافة معرف المشكلة إلى خطة مجموعة.

    إشعار

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

  4. يتم حساب معرف مشكلة حدث الاستثناء ومقارنته بمعرفات المشكلة في خطة المجموعة.

  5. إذا كان هناك تطابق بين معرفات المشكلة، يتم إنشاء لقطة لعملية التشغيل.

    • يتم تعيين لقطة معرف فريد ويتم ختم الاستثناء بهذا المعرف.

    إشعار

    معدل إنشاء اللقطات محدود بواسطة الإعداد SnapshotsPerTenMinutesLimit. بشكل افتراضي، الحد هو لقطة واحدة كل 10 دقائق.

  6. بعد إرجاع معالج FirstChanceException، تتم معالجة الاستثناء الذي تم طرحه كالمعتاد.

  7. يصل الاستثناء TrackException إلى الأسلوب مرة أخرى ويتم الإبلاغ عنه إلى Application Insights، جنبا إلى جنب مع معرف اللقطة.

إشعار

قم بتعيين IsEnabledInDeveloperMode إلى true إذا كنت تريد إنشاء لقطات أثناء تتبع الأخطاء في Visual Studio.

عملية تحميل اللقطة

بينما تستمر عملية Snapshot Debugger في التشغيل وخدمة نسبة استخدام الشبكة للمستخدمين الذين يعانون من انقطاع بسيط، يتم تسليم اللقطة إلى عملية Snapshot Uploader. محمل اللقطة:

  1. إنشاء minidump.

  2. تحميل minidump إلى Application Insights، جنبا إلى جنب مع أي ملفات رمز ذات صلة (.pdb).

إشعار

لا يمكن تحميل أكثر من 50 لقطة يوميا.

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

القيود

يناقش هذا القسم القيود المفروضة على Snapshot Debugger.

  • استبقاء البيانات

    يتم تخزين لقطات تتبع الأخطاء لمدة 15 يوماً. يتم تعيين نهج استبقاء البيانات الافتراضي هذا على أساس كل تطبيق. إذا كنت بحاجة إلى زيادة هذه القيمة، يمكنك طلب زيادة بفتح حالة دعم في مدخل Azure. لكل مثيل من Application Insights، يتم السماح بحد أقصى لعدد 50 لقطة في اليوم.

  • نشر الرموز

    يتطلب Snapshot Debugger ملفات رموز على خادم الإنتاج من أجل:

    • فك ترميز المتغيرات
    • توفير تجربة تصحيح الأخطاء في Visual Studio

    بشكل افتراضي، ينشر الإصدار 15.2+ من Visual Studio 2017 رموزا لإصدارات الإصدار عند النشر إلى App Service.

    في الإصدارات السابقة، يجب إضافة السطر التالي إلى ملف تعريف .pubxml النشر بحيث يتم نشر الرموز في وضع الإصدار:

         <ExcludeGeneratedDebugSymbol>False</ExcludeGeneratedDebugSymbol>
    

    بالنسبة إلى Azure Compute والأنواع الأخرى، تأكد من أن ملفات الرموز إما:

    • في نفس المجلد من التطبيق .dll الرئيسي (عادة، wwwroot/bin)، أو
    • متوفر على المسار الحالي.

    لمزيد من المعلومات حول خيارات الرموز المختلفة المتوفرة، راجع Visual Studio documentation. للحصول على أفضل النتائج، نوصي باستخدام Full أو Portable أو Embedded.

  • الإصدارات المحسنة

    في بعض الحالات، لا يمكن عرض المتغيرات المحلية في إصدارات الإصدار بسبب التحسينات التي يطبقها المحول البرمجي JIT.

    ومع ذلك، في App Service، يمكن ل Snapshot Debugger إلغاء تنشيط أساليب الطرح التي تعد جزءا من خطة التجميع الخاصة به.

    تلميح

    قم بتثبيت ملحق موقع Application Insights في مثيل App Service للحصول على دعم إلغاء التطبيق.

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

تمكين Application Insights Snapshot Debugger لتطبيقك:

ملاحظات حول الإصدار Microsoft.ApplicationInsights.SnapshotCollector

يحتوي هذا القسم على ملاحظات الإصدار لحزمة Microsoft.ApplicationInsights.SnapshotCollector NuGet لتطبيقات .NET، والتي يستخدمها Application Insights Snapshot Debugger.

تعرف على المزيد حول Application Insights Snapshot Debugger لتطبيقات .NET.

بالنسبة لتقارير الأخطاء والملاحظات، افتح مشكلة على GitHub.

إشعار

في 31 مارس 2025، سينتهي دعم إدخال مفاتيح الأجهزة. سيستمر استيعاب مفتاح الأجهزة في العمل ولكننا لن نقوم بتوفير تحديثات أو أي دعم للميزة. الانتقال إلى سلاسل الاتصال للاستفادة من الإمكانات الجديدة.

1.4.6

إصدار نقطة لمعالجة الانحدار عند استخدام تطبيقات .NET 8.

إصلاح الأخطاء

  • لا يتم تعقب الاستثناءات التي تم طرحها من الأساليب التي تم إنشاؤها ديناميكيا (على سبيل المثال، أشجار التعبير المحولة برمجيا) في .NET 8 بشكل صحيح. ثابت.

1.4.5

إصدار نقطة لمعالجة خطأ تم الإبلاغ عنه من قبل المستخدم.

إصلاح الأخطاء

  • تم إصلاح AccessViolationException عند قراءة بعض ملفات PDBs.

التغييرات

  • تمت إضافة ReadMe إلى حزمة NuGet.
  • تم تحديث msdia140.dll.

1.4.4

إصدار نقطة لمعالجة خطأ أبلغَ عنه المستخدم.

إصلاح الأخطاء

التغييرات

  • خفض رسائل فشل فحص PDB من خطأ إلى تحذير.
  • تم تحديث msdia140.dll.
  • تجنب إجراء اتصال خدمة إذا تم تعطيل مصحح الأخطاء عبر إعدادات ملحق الموقع.

1.4.3

إصدار نقطة لمعالجة خطأ أبلغَ عنه المستخدم.

إصلاح الأخطاء

1.4.2

إصدار نقطة لمعالجة خطأ تم الإبلاغ عنه من قبل المستخدم.

إصلاح الأخطاء

Fixed ArgumentException: يجب أن يكون المفوضون من نفس النوع.

1.4.1

إصدار نقطة لعكس تغيير مع تعطل العمل تم تقديمه في 1.4.0.

إصلاح الأخطاء

لم يتم العثور على الأسلوب الثابت في WebJobs.

1.4.0

معالجة تحسينات متعددة ودعم إضافي لمصادقة Microsoft Entra لاستيعاب Application Insights.

التغييرات

  • تم تقليل حجم حزمة Snapshot Collector بنسبة 60٪ من 10.34 ميغابايت إلى 4.11 ميغابايت.
  • netstandard2.0 المستهدف فقط في Snapshot Collector.
  • تبعية Application Insights SDK المصطدمة إلى 2.15.0.
  • تمت الإضافة مرة أخرى MinidumpWithThreadInfo عند كتابة النسخ الاحتياطية.
  • تمت إضافته CompatibilityVersion لتحسين المزامنة بين عامل Snapshot Collector و Snapshot Uploader عند كسر التغييرات.
  • SnapshotUploader تم تغيير خوارزمية تسمية LogFile لتجنب الإدخال/الإخراج الزائد للملف في App Service.
  • تمت إضافة pidو role nameو process start time إلى بيانات تعريف الكائن الثنائي كبير الحجم التي تم تحميلها.
  • يستخدم System.Diagnostics.Process في Snapshot Collector و Snapshot Uploader.

الميزات الجديدة

تمت إضافة مصادقة Microsoft Entra إلى SnapshotCollector. لمعرفة المزيد حول مصادقة Microsoft Entra في Application Insights، راجع مصادقة Microsoft Entra ل Application Insights.

1.3.7.5

إصدار نقطة للنسخ الاحتياطي لإصلاح من 1.4.0-pre.

إصلاح الأخطاء

تم إصلاح ObjectDisposedException عند إيقاف التشغيل.

1.3.7.4

إصدار نقطة لمعالجة مشكلة تم اكتشافها في اختبار سيناريو إرفاق بدون تعليمات برمجية ل App Service.

التغييرات

netcoreapp3.0 يعتمد الهدف الآن على Microsoft.ApplicationInsights.AspNetCore>= 2.1.1 (سابقا >= 2.1.2).

1.3.7.3

إصدار نقطة لمعالجة اثنتين من المشكلات ذات التأثير الكبير.

إصلاح الأخطاء

  • تم إصلاح اكتشاف PDB في المجلد wwwroot/bin ، والذي تم قطعه عندما قمنا بتغيير خوارزمية البحث عن الرموز في 1.3.6.
  • إصلاح صاخبة ExtractWasCalledMultipleTimesException في بيانات تتبع الاستخدام.

1.3.7

التغييرات

netcoreapp2.0 يعتمد هدف SnapshotCollector على Microsoft.ApplicationInsights.AspNetCore>= 2.1.1 (مرة أخرى). يعيد هذا التغيير السلوك إلى كيفية حدوثه قبل 1.3.5. حاولنا ترقيته في 1.3.6، ولكنه كسر بعض سيناريوهات App Service.

الميزات الجديدة

يقرأ Snapshot Collector ويوزع ConnectionString من متغير البيئة APPLICATIONINSIGHTS_CONNECTION_STRING أو من TelemetryConfiguration. في المقام الأول، يتم استخدامه لتعيين نقطة النهاية للاتصال بخدمة اللقطة. لمزيد من المعلومات، راجع تكوين سلاسل الاتصال.

إصلاح الأخطاء

تم التبديل إلى استخدام HttpClient لكافة الأهداف باستثناء net45 فشل WebRequest في بعض البيئات بسبب عدم توافق SecurityProtocol (يتطلب TLS 1.2).

1.3.6

التغييرات

  • SnapshotCollector يعتمد الآن على Microsoft.ApplicationInsights>= 2.5.1 لجميع أطر العمل المستهدفة. قد يكون هذا المطلب تغييرا فاصلا إذا كان التطبيق الخاص بك يعتمد على إصدار أقدم من Microsoft.ApplicationInsights SDK.
  • تمت إزالة الدعم ل TLS 1.0 و1.1 في Snapshot Uploader.
  • أصبحت فترة عمليات المسح PDB الافتراضية 24 ساعة بدلاً من 15 دقيقة. قابل للتكوين عبر PdbRescanInterval في SnapshotCollectorConfiguration.
  • يبحث فحص PDB عن مجلدات المستوى الأعلى فقط، بدلاً من البحث المتكرر. قد يكون هذا التغيير تغييرا فاصلا إذا كانت رموزك في مجلدات فرعية للمجلد الثنائي.

الميزات الجديدة

  • سجل التدوير SnapshotUploader لتجنب ملء مجلد السجلات بالملفات القديمة.
  • دعم Deoptimization (عبر ReJIT عند إرفاق) لتطبيقات .NET Core 3.0.
  • الرموز المضافة إلى حزمة NuGet.
  • تعيين المزيد من بيانات التعريف عند تحميل minidumps.
  • تمت إضافة خاصية Initialized إلى SnapshotCollectorTelemetryProcessor. إنه CancellationToken، والذي يتم إلغاؤه عند تهيئة Snapshot Collector وتوصيله بنقطة نهاية الخدمة.
  • يمكن الآن تسجيل اللقطات للاستثناءات في الأساليب التي يتم إنشاؤها ديناميكيًا. مثال على ذلك هو أشجار التعبير المحولة برمجيا التي تم إنشاؤها بواسطة استعلامات Entity Framework.

إصلاح الأخطاء

  • AmbiguousMatchException تحميل Snapshot Collector بسبب مراقبة الحالة.
  • GetSnapshotCollector يبحث أسلوب الامتداد الآن في جميع TelemetrySinks.
  • لا تبدأ تشغيل Snapshot Uploader على الأنظمة الأساسية غير المدعومة.
  • التعامل مع InvalidOperationException عندما تقوم بإلغاء تنشيط الأساليب الديناميكية (على سبيل المثال، إطار عمل الكيان).

1.3.5

  • دعم إضافي للسحب ذات السيادة (الإصدارات القديمة لا تعمل في السحب السيادية).
  • إضافة Snapshot Collector أصبح أسهل باستخدام AddSnapshotCollector(). لمزيد من المعلومات، راجع تمكين Snapshot Debugger لتطبيقات .NET في Azure App Service.
  • استخدم إعداد FISMA MD5 للتحقق من كتل الكائن الثنائي كبير الحجم. يتجنب هذا الإعداد خوارزمية تشفير .NET MD5 الافتراضية، والتي لا تتوفر عند تعيين نظام التشغيل إلى الوضع المتوافق مع FIPS.
  • تجاهل إطارات .NET Framework عند إلغاء تحسين استدعاءات الوظائف. التحكم في هذا السلوك باستخدام DeoptimizeIgnoredModules إعداد التكوين.
  • تمت إضافة DeoptimizeMethodCount إعداد التكوين الذي يسمح بإلغاء تنشيط أكثر من استدعاء دالة واحدة.

1.3.4

  • مفاتيح الأجهزة المنظمة المسموح بها.
  • زيادة قوة محمل اللقطة. متابعة بدء التشغيل حتى إذا تعذر نقل سجلات المحمل القديمة.
  • إعادة تمكين الإبلاغ عن المزيد من بيانات تتبع الاستخدام عند خروج SnapshotUploader.exe على الفور (تم تعطيله في 1.3.3).
  • بيانات تتبع الاستخدام الداخلية المبسطة.
  • ميزة تجريبية: خطط مجموعة Snappoint: إضافة snapshotOnFirstOccurence. لمزيد من المعلومات، راجع مقالة GitHub هذه.

1.3.3

تم إصلاح الخطأ الذي كان يتسبب في توقف SnapshotUploader.exe عن الاستجابة وعدم تحميل لقطات لتطبيقات .NET Core.

1.3.2

  • ميزة تجريبية: خطط مجموعة Snappoint. لمزيد من المعلومات، راجع مقالة GitHub هذه.
  • SnapshotUploader.exe إنهاء عندما يقوم وقت التشغيل بإلغاء تحميل AppDomain الذي SnapshotCollector تم تحميله منه، بدلا من انتظار إنهاء العملية. يحسن هذا الإجراء موثوقية المجمع عند استضافته في IIS.
  • تمت إضافة التكوين للسماح لمثيلات متعددة SnapshotCollector تستخدم نفس مفتاح الأجهزة بمشاركة نفس SnapshotUploader العملية: ShareUploaderProcess (افتراضيات إلى true).
  • تم الإبلاغ عن المزيد من بيانات تتبع الاستخدام عند خروج SnapshotUploader.exe على الفور.
  • تقليل عدد ملفات الدعم SnapshotUploader.exe تحتاج إلى الكتابة على القرص.

1.3.1

  • تمت إزالة الدعم لجمع اللقطات باستخدام واجهة برمجة تطبيقات RtlCloneUserProcess ودعم واجهة برمجة تطبيقات PssCaptureSnapshots فقط.
  • زيادة الحد الافتراضي لعدد اللقطات التي يمكن التقاطها في 10 دقائق من 1 إلى 3.
  • اسمح SnapshotUploader.exe بالتفاوض على TLS 1.1 و1.2.
  • تم الإبلاغ عن المزيد من بيانات تتبع الاستخدام عند SnapshotUploader تسجيل تحذير أو خطأ.
  • توقف عن أخذ اللقطات عندما تبلغ الخدمة الخلفية عن الوصول إلى الحصة اليومية (50 لقطة في اليوم).
  • تمت إضافة إيداع إضافي SnapshotUploader.exe لعدم السماح بتشغيل مثيلين في نفس الوقت.

1.3.0

التغييرات

  • بالنسبة للتطبيقات التي تستهدف .NET Framework، يعتمد Snapshot Collector الآن على Microsoft.ApplicationInsights الإصدار 2.3.0 أو أحدث. كان 2.2.0 أو أحدث. نعتقد أن هذا التغيير لن يكون مشكلة لمعظم التطبيقات. أخبرنا إذا كان هذا التغيير يمنعك من استخدام أحدث Snapshot Collector.
  • استخدم التأخيرات التراجعية الأسية في "تحميل اللقطات" عند إعادة محاولة التحميلات الفاشلة.
  • استخدم ServerTelemetryChannel (إذا كان متوفرا) للإبلاغ عن بيانات تتبع الاستخدام أكثر موثوقية.
  • استخدم SdkInternalOperationsMonitor على الاتصال الأولي بخدمة Snapshot Debugger بحيث يتجاهلها تتبع التبعية.
  • بيانات تتبع الاستخدام المحسنة حول الاتصال الأولي ب Snapshot Debugger.
  • الإبلاغ عن المزيد من بيانات تتبع الاستخدام ل:
    • إصدار App Service.
    • مثيلات حساب Azure.
    • الحاويات.
    • تطبيق Azure Functions.

إصلاح الأخطاء

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

1.2.3

تم إصلاح توقيع الاسم القوي مع ثنائيات Snapshot Uploader.

1.2.2

التغييرات

  • يتم الآن تضمين الملفات المطلوبة ل SnapshotUploader(64).exe كموارد في DLL الرئيسي. وهذا يعني SnapshotCollectorFiles أنه لم يعد يتم إنشاء المجلد، مما يبسط الإنشاء والتوزيع ويقلل من الفوضى في مستكشف الحلول. انتبه عند الترقية لمراجعة التغييرات في .csproj الملف. ملف Microsoft.ApplicationInsights.SnapshotCollector.targets لم يعد مطلوبًا.
  • يتم تسجيل بيانات تتبع الاستخدام إلى مورد Application Insights الخاص بك حتى إذا ProvideAnonymousTelemetry تم تعيينه إلى خطأ. هذا التغيير هو حتى نتمكن من تنفيذ ميزة التحقق من الصحة في مدخل Microsoft Azure. ProvideAnonymousTelemetry يؤثر فقط على بيانات تتبع الاستخدام المرسلة إلى Microsoft لدعم المنتج وتحسينه.
  • عند TempFolder أو ShadowCopyFolder يتم إعادة توجيهها إلى متغيرات البيئة، احتفظ بالجامع في وضع الخمول حتى يتم تعيين متغيرات البيئة هذه.
  • بالنسبة للتطبيقات التي تتصل بالإنترنت عبر خادم وكيل، يقوم Snapshot Collector الآن بالكشف التلقائي عن أي إعدادات وكيل وتمريرها إلى SnapshotUploader.exe.
  • خفض أولوية SnapshotUploader العملية (حيثما أمكن). يمكن تجاوز هذه الأولوية عبر IsLowPrioirtySnapshotUploader الخيار .
  • تمت إضافة GetSnapshotCollector أسلوب ملحق على TelemetryConfiguration للسيناريوهات حيث تريد تكوين Snapshot Collector برمجيا.
  • عيِّن إصدار Application Insights SDK (بدلاً من إصدار التطبيق) في بيانات تتبع الاستخدام المخصصة للعملاء.
  • أرسل حدث رسالة كشف أخطاء الاتصال الأول بعد دقيقتين.

إصلاح الأخطاء

  • يتم التصحيح NullReferenceException عندما تحتوي الاستثناءات على قواميس بيانات خالية أو غير قابلة للتغيير.
  • في مُحمِّل، أعد محاولة مطابقة PDB عدة مرات إذا حصلنا على انتهاك للمشاركة.
  • إصلاح بيانات تتبع الاستخدام المكررة عند استدعاء أكثر من مؤشر ترابط في مسار بيانات تتبع الاستخدام عند بدء التشغيل.

1.2.1

التغييرات

  • يتم الآن تضمين ملفات تعليقات XML Doc في حزمة NuGet.
  • تمت إضافة ExcludeFromSnapshotting أسلوب ملحق على System.Exception للسيناريوهات حيث تعرف أن لديك استثناء مزعجا وتريد تجنب إنشاء لقطات له.
  • تمت إضافة IsEnabledWhenProfiling خاصية تكوين افتراضيا إلى true. يعد هذا تغييرًا عن الإصدارات السابقة حيث تم تعطيل إنشاء اللقطة مؤقتًا إذا كان Application Insights Profiler يقوم بإجراء مجموعة مفصلة. يمكن استرداد السلوك القديم عن طريق تعيين هذه الخاصية إلى false.

إصلاح الأخطاء

  • قم بتسجيل SnapshotUploader64.exe بشكل صحيح.
  • وفِّر الحماية من التهيئة المزدوجة لمعالج بيانات تتبع الاستخدام.
  • امنع التسجيل المزدوج لبيانات تتبع الاستخدام في التطبيقات ذات مسارات بيانات متعددة.
  • تم إصلاح خطأ مع وقت انتهاء صلاحية خطة المجموعة، مما قد يمنع اللقطات بعد 24 ساعة.

1.2.0

أكبر تغيير في هذا الإصدار (ومن ثم الانتقال إلى رقم إصدار ثانوي جديد) هو إعادة كتابة إنشاء اللقطة ومعالجتها. في الإصدارات السابقة، تم تنفيذ هذه الوظيفة في التعليمات البرمجية الأصلية (ProductionBreakpoints.dll* و SnapshotHolder.exe*). التطبيق الجديد هو كل التعليمات البرمجية المدارة مع P/Invokes.

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

تغييرات أخرى في هذا الإصدار

  • تمت إعادة تسمية MinidumpUploader.exe إلى SnapshotUploader.exe (أو SnapshotUploader64.exe).
  • تمت إضافة بيانات تتبع استخدام التوقيت عن بُعد إلى طلبات DeOptimize / ReOptimize.
  • تمت إضافة ضغط gzip لعمليات تحميل التفريغ المصغر.
  • إصلاح مشكلة حيث تم تأمين PDBs منع ترقية الموقع.
  • سجل اسم المجلد الأصلي (SnapshotCollectorFiles) عند النسخ الاحتياطي.
  • حدود الذاكرة المعدلة لعمليات 64 بت لمنع إعادة تشغيل الموقع بسبب OOM.
  • تم إصلاح مشكلة استمرار تجميع اللقطات حتى بعد التعطيل.
  • تسجيل أحداث رسالة كشف أخطاء الاتصال إلى مورد الذكاء الاصطناعي للعميل.
  • تحسين سرعة اللقطة عن طريق إزالة "المصدر" من معرف المشكلة.

1.1.2

التغييرات

  • القياس عن بعد للاستخدام المعزز.
  • الكشف عن إصدار .NET ونظام التشغيل والإبلاغ عنه.
  • الكشف عن المزيد من بيئات Azure والإبلاغ عنها (Azure Cloud Services وAzure Service Fabric).
  • تسجيل مقاييس الاستثناء والإبلاغ بها (عدد استثناءات الفرصة الأولى وعدد TrackException المكالمات) في بيانات تتبع الاستخدام ل Heartbeat.

إصلاح الأخطاء

  • معالجة صحيحة لمكان SqlException عدم طرح الاستثناء الداخلي (Win32Exception).
  • اقتطاع المسافات اللاحقة على مجلدات الرموز، مما تسبب في تحليل غير صحيح لوسائط سطر الأوامر إلى MinidumpUploader.
  • منع إعادة المحاولة اللانهائية للاتصالات الفاشلة بنقطة نهاية عامل Snapshot Debugger.

1.1.0

التغييرات

  • تمت إضافة حماية ذاكرة المضيف. تقلل هذه الميزة من التأثير على ذاكرة الجهاز المضيف.
  • تحسين تجربة عرض لقطة مدخل Microsoft Azure.