दोनों को लिखना, डीबग, तैनाती और समर्थन करना था, मैं अनुसूचित कार्य को दूर और दूर करना पसंद करता हूं। मुझे संदेह नहीं है कि उपयोग के मामले हैं जहां यह गलत विकल्प होगा। लेकिन किसी अपेक्षाकृत मामूली कार्य के लिए एक कंसोल ऐप शेड्यूल कार्य के रूप में चल रहा है, यह बहुत अच्छा काम करता है।
मेरे अनुभव में, निर्धारित कार्य बेहद विश्वसनीय हैं। मुझे एक भी विफलता याद नहीं है और मैं आधा दर्जन अलग-अलग निर्धारित कार्यों का समर्थन करता हूं जो रोजाना हर 15 मिनट से कहीं भी चलते हैं। (ऐसा नहीं है कि कोई असफलता नहीं हुई है लेकिन वे सभी कोड या कॉन्फ़िगरेशन मुद्दे थे। और लॉग किए गए थे और नोटिफिकेशन भेजे गए थे। समस्या टास्क शेड्यूलिंग इंफ्रास्ट्रक्चर के साथ कभी नहीं हुई है।)
कार्य शेड्यूलर कार्य किसी भी उपयोगकर्ता संदर्भ के तहत चलाया जा सकता है और किसी को लॉग इन करने की आवश्यकता नहीं है।
मेरे सबसे बड़ी प्लस तैनाती में है। कंसोल ऐप्स के लिए, बस EXE को सही लक्ष्य फ़ोल्डर में प्रकाशित करें। खिड़कियों सेवाओं के लिए आप सेवा बंद करने के लिए (net.exe का प्रयोग करके) की जरूरत है सेवा (InstallUtil.exe का प्रयोग करके) (मैं 25 सेकंड तक तैनाती नींद),, रुको EXE प्रकाशित और फिर रिवर्स में यह सब करने की स्थापना रद्द (स्थापित , प्रारंभ)।
अगर मैं एक खिड़कियों सेवा विकसित करने के लिए थे फिर मैं एक सांत्वना अनुप्रयोग के रूप में यह लिखते थे और फिर एक सेवा में रैप करने के लिए सिर में दर्द की कम डिबगिंग बनाने के लिए एक रास्ता खोजने।
स्रोत
2015-09-15 16:11:09
आप सेवा मार्ग जाते हैं, टाइमर का उपयोग नहीं है। यह क्रैश और गैर-ऑपरेटिंग स्थिति में आपकी सेवा छोड़ सकता है, लेकिन ऐसा लगता है कि यह चल रहा है। – StingyJack
मुझे यह भी नहीं पता कि टाइमर के लिए "क्रैश" का क्या अर्थ है। टाइमर ओएस का हिस्सा हैं, और यदि आपकी दुर्घटनाग्रस्त हो जाती है तो आपकी सेवा में टाइमर की तुलना में बड़ी समस्याएं होती हैं। – MSalters
टाइमर ओएस का हिस्सा नहीं हैं। अधिक जानकारी के लिए यह एसओ पोस्ट देखें। http://stackoverflow.com/questions/397744/-net-windows-service-with-timer-stops-responding/397757#397757 – StingyJack