2008-11-17 17 views
6

मेरे पास एक .NET 3.5 WinForms एप्लिकेशन है जो मेरी मशीन पर ठीक चलता है, लेकिन दूसरी मशीन पर यह तुरंत system.io.fileloadexception के साथ दुर्घटनाग्रस्त हो जाता है। दुर्भाग्यवश, इस फ़ाइल पर लोड करने में असफल होने पर बिल्कुल कोई विवरण नहीं है, इसलिए मुझे नहीं पता कि समस्या वास्तव में कहां है।समस्या निवारण system.io.fileloadexception

मेरा मानना ​​है कि मुझे पता है कि यह कौन सा हो सकता है (एसक्यूएल सर्वर कॉम्पैक्ट संस्करण), लेकिन इससे पहले कि मैं लक्ष्युक रूप से शिकार कर रहा हूं, मुझे आश्चर्य है कि फाइललोड एक्सप्लोरेशन के कारण फ़ाइल लोड करने का क्या कारण है, यह पता लगाने का कोई उचित तरीका है कि SysInternals से FileMon का उपयोग करने के अलावा।

केवल त्रुटि संदेश है:

EventType clr20r3, P1 myapplication.exe, P2 2.1.0.0, पी 3 490eca78, पी 4 myapplication, पी 5 2.1.0.0, पी 6 490eca78, P7 2 ई, P8 21, पी 9 system.io.fileloadexception, पी 10 शून्य।

उत्तर

13

fusion logging चालू करें?

This blog entry ब्रैड विल्सन से कि अगर विफल रहता है कि क्या करना है के बारे में जानकारी देता है ...

+1

मैं पूरी तरह से है कि संलयन लकड़हारा याद किया। इसने मेरी समस्या को कुछ मिनटों में हल किया क्योंकि लॉग वास्तव में उपयोगी हैं। FUSLOGVW.exe को सिर्फ एक मशीन (कोई .NET SDK आवश्यक) पर कॉपी किया जा सकता है और इसके माध्यम से लॉगिंग सेटिंग सेट करना संभव है। जादू। धन्यवाद! –

+0

धन्यवाद, मुझे माइकल के समान अपवाद मिल रहा था, लॉगर ने मुझे मिनटों में समस्या हल करने में मदद की! –

6

आप अपने Main() विधि अधिक पकड़ने के लिए मजबूत (और प्रदर्शन) अपवाद ... like so बनाने की कोशिश कर सकते।

अक्सर, समस्या यह है कि बहुत अधिक कोड बाहरी Main() विधि में हो जाता है। जेआईटी को Main() को पूरी तरह से समझने में सक्षम होना चाहिए, अन्यथा आपके कोड का कोई भी चलाया जा सकता है। Main() सरल बनाकर, आप एक मौका खड़े हो जाते हैं। लिंक किए गए उदाहरण में, यदि MainCore() विफल रहता है: ठीक है, हम अभी भी Main() में अपवाद पकड़ सकते हैं।

यह काम करता है क्योंकि जेआईटी विधि-दर-विधि आधार पर किया जाता है ... यानी MainCore() इसे तब तक जित नहीं किया जाता जब तक इसे लागू नहीं किया जाता है, जिसके द्वारा हमारे पास पहले से ही हमारी कोशिश/पकड़ है।

1

माइक्रोसॉफ्ट डीबगिंग टूल्स एसडीके पकड़ो, और अपने आवेदन को संलग्न करने और चलाने के लिए या तो विंडबग या कॉर्डबग का उपयोग करें। यह आपको कम से कम एक सुराग देना चाहिए जहां समस्या है, अगर समस्या को इंगित नहीं करते हैं।

संबंधित मुद्दे