डिबगिंग वातावरण के लिए के उन्नयन के बाद मेरे खिड़कियों सेवा क्रैश हो रहा है, हम कोड में एक सशर्त Debugger.Launch बयान डेवलपर्स खिड़कियों सेवा के स्टार्टअप कोड में डिबग करने के लिए अनुमति देने के लिए किया है। हमने अभी हाल ही में .NET 4.0 में अपग्रेड किया है। अपग्रेड के बाद से, यदि हम जेआईटी विंडो से बाहर निकलते हैं (यानी हमने डीबग नहीं करना चुना), तो विंडोज सेवा क्रैश हो रही है (प्रक्रिया समाप्त हो रही है)। यह बस फिर से शुरू होता था। अगर हम संलग्न करने के लिए स्वीकार करते हैं, तो आवेदन समाप्त नहीं होता है और ठीक काम करता है।Debugger.Launch() अब .NET 4.0
संपादित
एक और अजीब बात यह है कि अपवाद है कि फेंक दिया जाता है नहीं रह गया है उपयोगकर्ता अपवाद के लिए एक प्रक्षेपण है। अब यह एक अनचाहे माइक्रोसॉफ्ट .NET फ्रेमवर्क अपवाद है। मैंने यह देखने के लिए चारों ओर एक कोशिश पकड़ने की कोशिश की है कि मुझे क्या मिलता है। जब मैं डीबग किया जाता हूं तो मैं अपवाद नहीं पकड़ सकता क्योंकि उस समय अपवाद नहीं होता है। अगर मैं किसी फ़ाइल में अपवाद लॉग करने का प्रयास करता हूं, तो सेवा क्रैश हो जाती है और मुझे कुछ भी नहीं मिलता है।
इसे ठीक करने के किसी भी तरह से? इसके लिए कोई कारण?
अधिक जानकारी
मैं सिर्फ एक खाली और नई विंडो प्रपत्र आवेदन बनाया।
public Form1()
{
try
{
MessageBox.Show("hello");
System.Diagnostics.Debugger.Launch();
}
catch
{
MessageBox.Show("error");
}
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
InitializeComponent();
}
void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
MessageBox.Show(e.ToString());
}
मुझे पहला "हैलो" मिलता है। फिर मुझे जेआईटी विंडो मिलती है जो कहती है कि "अनचाहे माइक्रोसॉफ्ट .NET अपवाद हुआ है"। अगर मैं संलग्न नहीं करता हूं, तो यह किसी संदेश या कुछ के बिना दुर्घटनाग्रस्त हो जाता है।
मैं WinDbg और क्या नहीं की कोशिश की। मैं उन उपकरणों के साथ बिल्कुल परिचित नहीं हूँ। मैं यही प्राप्त कर रहा हूं। यह सब
Microsoft (R) Windows Debugger Version 6.12.0002.633 AMD64 Copyright (c) Microsoft Corporation. All rights reserved. Loading Dump File [C:\Users\moueis\TestDebugging_100927_104956.dmp] User Mini Dump File with Full Memory: Only application data is available Comment: ' *** C:\Users\moueis\Desktop\procdump.exe TestDebugging.exe -e -ma *** Unhandled exception' Symbol search path is: *** Invalid *** **************************************************************************** * Symbol loading may be unreliable without a symbol search path. * * Use .symfix to have the debugger choose a symbol path. * * After setting your symbol path, use .reload to refresh symbol locations. * **************************************************************************** Executable search path is: Windows 7 Version 7600 MP (8 procs) Free x64 Product: Server, suite: TerminalServer SingleUserTS Machine Name: Debug session time: Mon Sep 27 10:49:56.000 2010 (UTC - 4:00) System Uptime: 11 days 20:41:04.714 Process Uptime: 0 days 0:00:22.000 ......................................... *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdll.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for KERNELBASE.dll - KERNELBASE!DebugBreak+0x2: 000007fe`fd432442 cc int 3
यह 1 से अधिक मशीन पर हो रहा है पर बहुत उपयोगी प्रकट नहीं होता है (हालांकि, वे extreamly समान हैं)।
फिर से अधिक जानकारी
जाहिरा तौर पर यह बहुत आसान पुन: पेश करने के लिए है। यह घर में कई प्रणालियों पर हुआ है और मुझे बाहरी पार्टी से पुष्टि मिली है कि समस्या को .NET 4.0 प्रपत्र में ऊपर दिए गए कोड स्निपेट का उपयोग करके पुन: उत्पन्न किया जा सकता है जो .NET 4.0
पोस्ट अपवाद के स्टैक ट्रेस के साथ ही अपवाद संदेश। –
इवेंट लॉग आपको क्या बता रहा है? –
आपको सेवा की एक स्मृति डंप ले सकता है जब यह Sysinternal के ProcDump उपयोगिता (-e विकल्प का उपयोग) का उपयोग दुर्घटनाओं। डंप प्राप्त करने के बाद, आप इसे WinDbg में लोड कर सकते हैं और जांच कर सकते हैं कि यह एसओएस डीबगर एक्सटेंशन का उपयोग करके क्रैश क्यों हुआ। – Liran