मैं विंडोज सेवाओं के लिए बिल्कुल नया हूं। मैंने अपने सी # विंडोज सेवा के लिए एक इंस्टॉलर बनाया और सर्वर (विंडोज सर्वर 2003) पर स्थापना काम किया प्रतीत होता है। जब यह शुरू होता है, तो यह लॉग में Service started successfully
लिखता है। जब यह बंद हो जाता है, तो यह Service stopped successfully
लिखता है। हालांकि, कभी-कभी सेवा लॉग में कुछ भी लिखने के बिना चलती रहती है, इसलिए मैं इसे मैन्युअल रूप से बैक अप लेता हूं। जब मैं बाद में लॉग को देखता हूं, तो यह अनुमान के अनुसार Service started successfully
कहता है। यह अजीब बात है कि लॉग में दो बार लॉग में यह स्पष्ट रूप से एक प्रविष्टि गायब है जहां सेवा किसी भी तरह से चलना बंद कर दिया था।मेरी सी # विंडोज सेवा एप्लिकेशन इवेंट लॉग में लिखे गए किसी भी संदेश के बिना क्यों चलती है?
इसके लिए संभावित कारण क्या हो सकते हैं? मेरे पास स्वचालित रूप से स्थापित सेवा है और इसे सभी उपयोगकर्ताओं के लिए चलाने के लिए इंस्टॉल किया गया है। मैं इस धारणा के तहत था कि इसका मतलब यह है कि मशीन बूट होने पर सेवा स्वचालित रूप से शुरू होती है। मैं कैसे पता लगा सकता हूं कि यह क्यों रुक गया? ऐसी सेवाएं करें जो स्वचालित रूप से ईवेंट लॉग पर लिखती हैं या क्या मुझे अपवादों को इस तरह से संभालना है कि वे क्रैश के लिए अपना स्वयं का कारण लॉग करते हैं?
संपादित करें: कुछ अतिरिक्त जानकारी:
- मैं इसे
- पुनर्प्राप्ति विकल्प के तहत स्थानीय सिस्टम खाते के रूप में पर लॉग ऑन करने के लिए स्थापित है, मैं यह पहली बार विफलता पर पुनः आरंभ करने के लिए स्थापित की है। मेरे पास दूसरी या बाद की असफलताओं के लिए कुछ भी नहीं है।
अद्यतन: एक उत्तर देने एक वैश्विक अपवाद संचालक की सिफारिश की। हालांकि मैं इसे स्थायी फिक्स के रूप में लागू नहीं करूँगा, लेकिन कम से कम मुझे यह पता लगाने में मदद मिलेगी कि समस्या कहां हो रही है। मैंने वास्तव में अपनी स्थापित सेवा के साथ इसका परीक्षण किया और यह काम करता है। मुझे पता चला कि अनचाहे अपवाद वास्तव में लॉग पर कुछ भी लिखे बिना सेवा को दुर्घटनाग्रस्त करते हैं। मैंने सोचा कि कम से कम कुछ एप्लिकेशन त्रुटि की रिपोर्ट होगी, लेकिन ऐसा नहीं है।
static void Main()
{
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
//other code here
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Utilities.WriteIt(e.ExceptionObject as Exception);
}
क्या आपने EventLog की जांच की है? – pms1969