मैं एक लंबे समय से चल .NET 4.5 अनुप्रयोग है कि बेतरतीब ढंग से दुर्घटनाओं, संदेश मैं ईवेंट लॉग में सवाल शीर्षक में उल्लेख किया है छोड़ने है । यह मुद्दा 3 अलग-अलग मशीनों और 2 अलग-अलग प्रणालियों (2008 आर 2 और 2012) पर पुन: उत्पन्न किया गया है। एप्लिकेशन किसी भी असुरक्षित/अप्रबंधित घटकों का उपयोग नहीं करता है, यह शुद्ध प्रबंधित .NET है, सीएलआर स्वयं ही एकमात्र अप्रबंधित चीज़ है।.NET 4.5: .NET रनटाइम में आंतरिक त्रुटि (80,131,506)/अक्षम करने समवर्ती जीसी
यहाँ दुर्घटना स्थल कि मैं डंप से निकाला है की स्टैक ट्रेस है:
clr.dll!MethodTable::GetCanonicalMethodTable()
clr.dll!SVR::CFinalize::ScanForFinalization() - 0x1a31b bytes
clr.dll!SVR::gc_heap::mark_phase() + 0x328 bytes
clr.dll!SVR::gc_heap::gc1() + 0x95 bytes
clr.dll!SVR::gc_heap::garbage_collect() + 0x16e bytes
clr.dll!SVR::gc_heap::gc_thread_function() + 0x3e bytes
clr.dll!SVR::gc_heap::gc_thread_stub() + 0x77 bytes
kernel32.dll!BaseThreadInitThunk() + 0x1a bytes
ntdll.dll!RtlUserThreadStart() + 0x21 bytes
यह समस्या बारीकी से एक है कि here चर्चा की गई जैसा दिखता है, तो मैं समाधान है कि विषय में सुझाव दिया कोशिश की, लेकिन उनमें से कोई भी मदद की:
मैं this हॉटफिक्स को स्थापित करने की कोशिश की है, लेकिन यह मेरी मशीनों में से किसी पर स्थापित नहीं होगा (KB2640103 लागू नहीं होता है, या आपके कंप्यूटर पर एक और शर्त द्वारा अवरुद्ध है), जो वास्तव में समझ में आता है, हो क्योंकि मैं 4.5 का उपयोग कर रहा हूं, 4.0 नहीं।
मैं समवर्ती जीसी अक्षम करने की कोशिश की है और/या सर्वर जीसी सक्षम करने से। अभी मेरी app.config की प्रासंगिकता का इस तरह दिखता है:
<?xml version="1.0"?> <configuration> <runtime> <gcConcurrent enabled="false"/> <gcServer enabled="true" /> </runtime> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/> </startup></configuration>
हालांकि अजीब बात मैं अभी भी प्रक्रिया डंप में कई जीसी संबंधित धागे लगता है।
ntdll.dll!NtWaitForSingleObject() + 0xa bytes
KERNELBASE.dll!WaitForSingleObjectEx() + 0x9a bytes
clr.dll!CLREventBase::WaitEx() + 0x13f bytes
clr.dll!CLREventBase::WaitEx() + 0xf7 bytes
clr.dll!CLREventBase::WaitEx() + 0x78 bytes
clr.dll!SVR::t_join::join() + 0xd8 bytes
clr.dll!SVR::gc_heap::scan_dependent_handles() + 0x65 bytes
clr.dll!SVR::gc_heap::mark_phase() + 0x347 bytes
clr.dll!SVR::gc_heap::gc1() + 0x95 bytes
clr.dll!SVR::gc_heap::garbage_collect() + 0x16e bytes
clr.dll!SVR::gc_heap::gc_thread_function() + 0x3e bytes
clr.dll!SVR::gc_heap::gc_thread_stub() + 0x77 bytes
kernel32.dll!BaseThreadInitThunk() + 0x1a bytes
ntdll.dll!RtlUserThreadStart() + 0x21 bytes
कौन सा अगर मैं किसी भी तरह समवर्ती जीसी अक्षम करने अप पेंच सकता है मुझे सोच बनाता है (कि क्या मैं वास्तव में के लिए config सूचीबद्ध है): एक दुर्घटना में होता है के अलावा, वहाँ निम्नलिखित स्टैक ट्रेस के साथ 7 धागे हैं।
मुझे लगता है कि ऊपर लपेटता है जो मैं अब तक पता लगाने के लिए प्रबंधित किया है लगता है। मैं वास्तव में इस मुद्दे से निपटने के तरीके के बारे में कुछ मदद का उपयोग कर सकता हूं।
जीसी ढेर पर एक प्रबंधित ऑब्जेक्ट का ऑब्जेक्ट हेडर दूषित हो गया है, इसे अब प्रकार की विधि तालिका नहीं मिल रही है। आप हमेशा अनपेक्षित कोड की तलाश करते हैं जिसे आप देखने के लिए इंटरऑप करते हैं एक कारण के लिए। जीसी कॉन्फ़िगरेशन के साथ टंकण करने से समस्या ठीक नहीं होती है। –
शायद फाइनल में कोई समस्या हो सकती है? आप अंतिमकर्ताओं में ब्रेकपॉइंट्स सेट करने या उन्हें टिप्पणी करने का प्रयास कर सकते हैं। – DSway
'scan_dependent_handles': निर्भर हैंडल हाल ही में सीएलआर में जोड़े गए थे (4.0?)। शायद यह सीएलआर में एक वास्तविक बग है। – usr