2009-07-31 13 views
8

समाप्त हो गई है मेरे पास एक विंडोज़ सेवा है जिसमें कई धागे हैं जो कुछ काम करते हैं। सभी एक बार परीक्षण में अच्छी तरह से चल रहे हैं, जहां मैंने देखा कि "दर्शक सेवा अप्रत्याशित रूप से समाप्त हुई" घटना दर्शक में।विंडोज सेवा अप्रत्याशित रूप से

यह कहां हो रहा है डीबग करने की कोशिश करने के बारे में मैं कैसे जा सकता हूं? मेरे पास सामान्य परिस्थितियों में अपवादों को पकड़ा जा रहा है लेकिन इस मामले में नहीं।

मुझे नहीं पता कि कहां से शुरू करना है।

जेडी।

+1

क्या आप अप्रबंधित पुस्तकालयों का उपयोग करते हैं? –

उत्तर

6

अपने onStart() कॉलबैक में System.Diagnostics.Debugger.Break() के लिए एक कॉल रखो पा सकते हैं। जब आपकी सेवा शुरू होती है, तो आपको विजुअल स्टूडियो डीबगर शुरू करने के लिए कहा जाएगा। एक बार डीबगर खुलता है, तो आप वहां से डीबग कर सकते हैं।

+0

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

+1

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

+0

आप अपनी सेवा के लिए एंट्री पॉइंट फ़ंक्शन में डीबगर। ब्रेक() कॉल भी डाल सकते हैं, जो पहले स्टार्टअप प्रक्रिया (जाहिर है) ऑनस्टार्ट() कॉलबैक की तुलना में भी है। अगर आप इसे अपने ऑनस्टार्ट() कॉलबैक में कभी नहीं बनाते हैं तो ऐसा करें। –

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