मैं एक विंडोज सेवा का कुछ व्यापक परीक्षण कर रहा हूं जिसे मैं सी # नेट 3.5 में लिख रहा हूं। मुझे विंडोज़ को फिर से चालू करने के लिए पर्याप्त समय देने में परेशानी हो रही है जब मैं कंप्यूटर को पुनरारंभ या बंद कर देता हूं, भले ही मैं RequestAdditionalTime() विधि का आह्वान कर रहा हूं, जिसे एससीएम अपडेट करना चाहिए और मेरी सेवा को चालू रखना चाहिए। यदि मैं मैन्युअल रूप से सेवा को रोकता हूं तो मेरा कोड ठीक से काम करता है। मैं मुख्य रूप से विंडोज एक्सपी में कोड का परीक्षण करने का निर्णय लेने पर विंडोज विस्टा और विंडोज 7 में इस कोड का परीक्षण कर रहा हूं, सब कुछ पूरी तरह से काम करता है। क्या किसी को पता है कि यह कॉल Vista/7 में क्यों काम नहीं करती है? मुझे लगता है कि मुझे सिस्टम को बंद करने से रोकने के लिए किसी तरह की अनुमति की आवश्यकता है जो मैं एक्सपी में डिफ़ॉल्ट रूप से प्राप्त करता हूं लेकिन Vista/7 में नहीं।VistaAditionalTime() विधि Vista/7 में पुनरारंभ करने पर क्यों काम नहीं करती है?
उत्तर
यदि सिस्टम बंद नहीं हो रहा है, तो आपकी सेवा अतिरिक्त समय का अनुरोध कर सकती है और आपकी प्रक्रिया नहीं मारेगी।
यदि सिस्टम बंद हो रहा है, तो आपकी सेवा को बंद करना होगा। आपको सामान्य 30 सेकंड भी प्राप्त नहीं होते हैं जो सामान्य रूप से एक सेवा प्राप्त होती है। शट डाउन होने के मुकाबले ज्यादा बलवान है।
गैर बंद मामले में, RequestAdditionalTime() हर 2 मिनट से भी अधिक बार बुलाया जाना चाहिए:
protected override void OnStop()
{
Thread.Sleep(60000);
RequestAdditionalTime(180000);
Thread.Sleep(60000);
RequestAdditionalTime(180000);
Thread.Sleep(5000);
}
ध्यान दें कि नाम के बावजूद, समय पैरामीटर कुल शटडाउन समय का अनुरोध किया है।
क्या आपके पास समय पैरामीटर के अर्थ का संदर्भ है? यह एमएसडीएन पर सूचीबद्ध नहीं है। –
@ डेविड: यह एक साल पहले खत्म हो गया था, लेकिन मुझे इसे कुछ परीक्षण के रूप में याद किया गया है। –
यह विंडोज 7 में काम नहीं करता है (हालांकि यह यहां कॉन्फ़िगर किया गया है)। इसके अलावा, उदाहरण स्पष्ट रूप से अधिक समय को स्पष्ट नहीं करता है क्योंकि डिफ़ॉल्ट 120 है (यहां) और केवल ~ 125 नींद दिखाए जाते हैं। – user2864740
साइमन Buchan के जवाब में 2 मिनट लिंक मेरी माइक्रोसॉफ्ट यहाँ में जाना जाता है: http://connect.microsoft.com/VisualStudio/feedback/details/96460/servicebase-requestadditionaltime-has-no-impact-on-start-timeout
हालांकि यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, [यह बेहतर होगा] (http://meta.stackexchange.com/q/8259) यहां उत्तर के आवश्यक हिस्सों को शामिल करने के लिए, और संदर्भ के लिए लिंक प्रदान करें। –
- 1. मैपडबेट बफर का सरणी() विधि क्यों काम नहीं करती है?
- 2. जावा: यह स्वैप विधि क्यों काम नहीं करती है?
- 3. यह सिंक्रनाइज़ विधि क्यों अपेक्षित काम नहीं करती है?
- 4. जावा विधि विंडोज़ पर काम करती है लेकिन मैकिनटोश नहीं?
- 5. विधि कैसे काम करती है?
- 6. LINQ: यह क्वेरी ArrayList पर क्यों काम नहीं करती है?
- 7. "ज्यामिति()" विधि देरी के साथ क्यों काम करती है?
- 8. स्प्रिंग @ ट्रांज़ेक्शन विधि उसी वर्ग के भीतर विधि द्वारा कॉल करती है, काम नहीं करती है?
- 9. फ़ॉन्ट सेटिंग जीवीआईएम में क्यों काम नहीं करती है?
- 10. इस बाध्य विधि पर कमजोर क्यों काम नहीं करता है?
- 11. .ToString() विधि कैसे काम करती है?
- 12. यह बहिष्कृत विधि कैसे काम करती है?
- 13. एलजेएमए संपीड़न विधि कैसे काम करती है?
- 14. मेरी स्ट्रिंग तुलना क्यों काम नहीं करती है?
- 15. जावा विधि 1.5 में काम करती है लेकिन 1.6
- 16. यह अभिव्यक्ति क्यों काम नहीं करती है? जेएसएफ
- 17. जावा की कॉन्सैट() विधि कुछ भी क्यों नहीं करती है?
- 18. यह SQL अद्यतन क्वेरी क्यों काम नहीं करती है?
- 19. यह सेट समझदारी क्यों काम नहीं करती है?
- 20. ग्रोवी में कोई विधि कैसे काम करती है?
- 21. इस प्रोग्राम में keyPressEvent विधि कैसे काम करती है?
- 22. क्यों php कमांड `exec (" service apache2 पुनरारंभ करें "); 'उबंटू पर काम नहीं करता है?
- 23. क्यों ObservableCollection में RemoveAll विधि नहीं है?
- 24. सरणी की समान विधि कैसे काम करती है?
- 25. पार्टिकल फ़ंक्शन पर कोई ऑरसे विधि क्यों नहीं है जो कुल फ़ंक्शन स्वीकार करती है?
- 26. मुझे विंडोज़ पर काम करने के लिए पाइथन की urlopen() विधि क्यों नहीं मिल सकती है?
- 27. वेबसाइट आईई में 404 पर रीडायरेक्ट करती है लेकिन अन्य ब्राउज़रों पर काम करती है
- 28. इस कोड में काम करने का अनुमान क्यों नहीं है?
- 29. रेल पर रूबी कैसे काम करती है?
- 30. लैम्ब्डा अभिव्यक्ति जावा 8 में काम नहीं करती है?
वहाँ किसी भी तरह से समय की राशि आपकी सेवा बंद करने के लिए मिल जाएगा पता करने के लिए है जब आप बंद या कंप्यूटर को पुनरारंभ? मुझे पता है कि WaitToKillServiceTimeout W7 में 12000 और Vista, XP में 20000 पर सेट है। लेकिन जब भी आप W7 या Vista में यह मान बदलते हैं तो इसका बहुत कम या कोई प्रभाव नहीं पड़ता है। विशेष रूप से विंडोज 7 में यह कुछ सेकंड के भीतर आपकी सेवा stomps। अंतर्दृष्टि के लिए धन्यवाद। –
मुझे लगता है कि जानने का कोई तरीका नहीं है। मान लीजिए विंडोज सभी सेवाओं को बंद करने के लिए 13 सेकंड की अनुमति देता है। कुछ अन्य सेवा में 12 सेकंड का सीपीयू समय लगता है (इसलिए उस समय के दौरान अन्य सेवाएं निष्पादित नहीं हो सकती हैं) और आखिर में बंद हो जाती हैं। यह बाकी सभी के लिए 1 सेकंड छोड़ देता है। विंडोज उन्हें मारने जा रहा है। –