يمكن النظام.AccessViolationException يحدث بسبب خلل ذاكرة الوصول العشوائي ؟

StackOverflow https://stackoverflow.com/questions/1444844

سؤال

لدي موقع على شبكة الانترنت التي كنت أعمل لمدة عام تقريبا الآن.مؤخرا, لقد بدأ رمي النظام.AccessViolationException كل الآن وبعد ذلك ، في ديف آلة, في الغالب, عندما كنت بعيدا عن الجهاز...

لم يتغير أي شيء على الخادم رمز في أسابيع منذ أن كنت تعمل 100% على جزء جافا سكريبت, و هذا خطأ بدأت تظهر في الآونة الأخيرة.

أيضا, مدونة أنا به هو 100 ٪ إدارتها.أنا لا أفعل أي إمكانية التشغيل المتداخل ، داعيا غريب DLLs لا شيء.انها نقية VB.Net لذا أنا لا أرى كيف يمكن أن تولد واحدة من هذه نفسي...

الآن, لقد تم استخدام هذا الجهاز الجديد لبضعة أشهر, و هو لا يعمل 100% صحيح.كل 2 أو 3 أيام أنا على الحصول على شاشة زرقاء على سبيل المثال.لم يكن لدي وقت لتشخيص ذلك بشكل صحيح ، لكني الشك قد يكون خلل في رقاقة ذاكرة الوصول العشوائي.

هل من الممكن أن ذاكرة الوصول العشوائي الخاطئ يمكن أن يؤدي إلى AccessViolationException?
أو هل لدي مشكلة فعلية يجب أن تبحث في ؟ (إلى جانب ذاكرة الوصول العشوائي بلدي)


تحديث:

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

لذلك أنا لا أعرف ما إذا كان ذلك يحدث في كل مرة في نفس المكان أم لا.

أما بالنسبة memtest, نعم, انا ذاهب الى أن تفعل شيئا مثل هذا, أنا فقط أتمنى أن يكون بعض الوقت للقيام بذلك قريبا, ولكن أردت أن أعرف ، في غضون ذلك ، ما إذا كان هذا يمكن أن يفسر هذه المشكلة.


تحديث 2:

وجدت هذا في سجل الأحداث...

حدث استثناء غير معالج وتم إنهاء العملية.

Application ID: DefaultDomain    
Process ID: 6632    
Exception: System.AccessViolationException

Message: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

StackTrace:    at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus& notificationStatus)
   at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
   at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)

أي أفكار ما جعل من هذا ؟
شكرا
دانيال

هل كانت مفيدة؟

المحلول

هل من الممكن أن ذاكرة الوصول العشوائي الخاطئ يمكن أن يؤدي إلى AccessViolationException?

نعم هذا ممكن.إذا الأساسية ذكرى عملية لا تتصرف كما هو متوقع ثم نعم يمكن أن يؤدي إلى العديد من أنواع مختلفة من التطبيق العيوب بما في ذلك AccessViolationException.

هو في الأرجح أن ذاكرة الوصول العشوائي الخاطئ يؤدي إلى AccessViolationException?

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

أيضا بن S اقتراح جيد لاستبعاد RAM القضية بسرعة.

نصائح أخرى

إذا كان لديك أي شكوك حول ذاكرة الوصول العشوائي الخاطئ ، memtest86.

ولكن إذا كان الخطأ يحدث دائما في نفس المكالمة ، ربما لا ذاكرة الوصول العشوائي.

هل هذا يحدث فقط على ديف الجهاز ؟ إذا كان الجواب نعم ثم خلل ذاكرة الوصول العشوائي القرص الصلب (ملف صفحة) من الممكن جدا.قد تحتاج أيضا إلى إعادة تثبيت .NET Framework في حالة واحدة من المكتبات (ربما يكون واحدا من الصورة الأصلية DLLs) أصبح معطوبا.

ببساطة:

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

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

مثل الإجابة السابقة لاحظ استخدام Memtest86+ للتأكد من أن الذاكرة الخاصة بك هو جيد أم لا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top