पुनर्चक्रण
पुनर्चक्रण आमतौर पर होता है * जहां IIS आपके आवेदन के लिए कंटेनर के रूप में एक नई प्रक्रिया शुरू करता है, और फिर पुराने को शटडाउनटाइमलिमिट तक देता है ताकि वह मारे जाने से पहले अपनी इच्छा से दूर जा सके।
* - आमतौर पर: DisallowOverlappingRotation / "अक्षम ओवरलैप किए गए रीसायकल" सेटिंग देखें
यह विनाशकारी है , इसमें मूल प्रक्रिया और इसकी सभी राज्य सूचनाओं को छोड़ दिया जाता है। आउट-ऑफ-प्रक्रिया सत्र राज्य (जैसे, स्टेट सर्वर या एक डेटाबेस, या यहां तक कि अगर आपका राज्य छोटा है) का उपयोग करके आप इस के आसपास काम करने की अनुमति दे सकते हैं।
लेकिन यह डिफ़ॉल्ट रूप से ओवरलैप किया गया है - जिसका अर्थ है कि एक आउटेज की अवधि कम हो गई है क्योंकि नई प्रक्रिया शुरू होती है और अनुरोध कतार तक पहुंच जाती है, इससे पहले कि पुराने को "आपको [शटडाउनटाइमलिमिट] सेकंड्स दूर जाने के लिए कहा जाए। कृपया अनुपालन करें।"
समायोजन
आपके प्रश्न के लिए: उस पृष्ठ की सभी सेटिंग्स किसी तरह से रीसाइक्लिंग को नियंत्रित करती हैं। "शटडाउन" को "प्रोएक्टिव रीसाइक्लिंग" के रूप में वर्णित किया जा सकता है - जहां प्रक्रिया खुद तय करती है कि इसे जाने का समय है, और क्रमबद्ध तरीके से बाहर निकलता है।
प्रतिक्रियाशील पुनर्चक्रण वह जगह है जहां WAS एक समस्या का पता लगाता है और प्रक्रिया को शूट करता है (एक उपयुक्त प्रतिस्थापन W3WP की स्थापना के बाद)।
अब, यहाँ कुछ चीजें हैं जो एक रूप या किसी अन्य के पुनर्चक्रण का कारण बन सकती हैं:
- एक ISAPI यह अस्वस्थ निर्णय ले रहा है
- किसी भी मॉड्यूल दुर्घटनाग्रस्त
- निष्क्रिय समय
- सीपीयू सीमित
- एप्लिकेशन पूल गुणों का समायोजन
- जैसा कि आपकी मां ने एक बिंदु पर चिल्लाया हो सकता है: " इसे चुनना बंद करो , या यह कभी भी बेहतर नहीं होगा!"
- "पिंग" विफलता * वास्तव में प्रति पिंग नहीं, क्योंकि यह एक नामित पाइप का उपयोग करता है - अधिक "जीवन का पता लगाने"
- उपरोक्त स्क्रीनशॉट में सभी सेटिंग्स
क्या करें:
आम तौर पर:
अक्षम निष्क्रिय समय समाप्ति । निष्क्रियता के 20 मिनट = उछाल! अगले आने वाले अनुरोध पर नई प्रक्रिया। वह शून्य पर सेट करें।
नियमित समय अंतराल को अक्षम करें - 29 घंटे के डिफ़ॉल्ट को विभिन्न पक्षों द्वारा "पागल", "कष्टप्रद" और "चतुर" के रूप में वर्णित किया गया है। दरअसल, उनमें से केवल दो ही सच हैं।
वैकल्पिक रूप से DisallowRotationOnConfigChange (उपरोक्त, कॉन्फ़िगरेशन परिवर्तन के लिए पुन: व्यवस्थित करने पर अक्षम करें) को चालू करें यदि आप बस इसके साथ खेलना बंद नहीं कर सकते हैं - यह आपको किसी भी ऐप पूल सेटिंग को बदलने की अनुमति देता है इसके बिना कार्यकर्ता प्रक्रियाओं को तुरंत संकेत देता है कि इसे मारने की आवश्यकता है। सेटिंग्स को प्रभावी करने के लिए आपको ऐप पूल को मैन्युअल रूप से रीसायकल करने की आवश्यकता है, जो आपको सेटिंग्स को पूर्व-निर्धारित करने की अनुमति देता है और फिर अपनी रीसायकल प्रक्रिया के माध्यम से उन्हें लागू करने के लिए एक परिवर्तन विंडो का उपयोग करता है।
एक सामान्य सिद्धांत के रूप में, पिंगिंग को सक्षम छोड़ दें । वह आपकी सुरक्षा का जाल है। मैंने देखा है कि लोग इसे बंद कर देते हैं, और फिर साइट अनिश्चित काल तक लटकी रहती है, जिससे घबराहट होती है ... इसलिए यदि सेटिंग्स आपके जाहिरा तौर पर बहुत-बहुत-धीमी-से-प्रतिक्रिया ऐप के लिए आक्रामक हैं, तो उन्हें थोड़ा वापस करें और देखें कि आपको क्या मिलेगा, बजाय इसे बंद करने के। (जब तक आपको अपनी स्वयं की निगरानी प्रक्रिया के माध्यम से त्रिशंकु W3WP के लिए ऑटो-क्रैश-मोड डंपिंग स्थापित नहीं किया जाता है)
यह हमेशा के लिए जीने के लिए एक अच्छी तरह से व्यवहार प्रक्रिया का कारण बनने के लिए पर्याप्त है। यदि यह मर जाता है, तो निश्चित रूप से, इसे बदल दिया जाएगा। यदि यह लटका हुआ है, तो पिंगिंग को चुनना चाहिए और एक नया 2 मिनट के भीतर शुरू होना चाहिए (डिफ़ॉल्ट रूप से, सबसे खराब स्थिति वाला कैल्क होना चाहिए: अनुरोध फिर से काम करना शुरू करने से पहले पिंग आवृत्ति + पिंग टाइमआउट + स्टार्टअप समय सीमा तक )।
सीपीयू सीमित करना आम तौर पर दिलचस्प नहीं है , क्योंकि डिफ़ॉल्ट रूप से यह बंद हो गया है, और यह वैसे भी कुछ भी करने के लिए कॉन्फ़िगर किया गया है; यदि यह प्रक्रिया को मारने के लिए कॉन्फ़िगर किया गया था, तो सुनिश्चित करें कि यह एक रीसाइक्लिंग ट्रिगर होगा। इसे छोड़ दो। IIS 8.x, CPU थ्रॉटलिंग के लिए नोट भी एक विकल्प बन जाता है।
एक (IIS) AppPool एक (.Net) AppDomain नहीं है (लेकिन इसमें एक / कुछ हो सकता है)
लेकिन ... तब हम .Net भूमि और AppDomain रीसाइक्लिंग में लग जाते हैं, जिससे राज्य का नुकसान भी हो सकता है। (देखें: https://blogs.msdn.microsoft.com/tess/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles/ )
लघु संस्करण, आप अपने सामग्री फ़ोल्डर में एक web.config फ़ाइल (फिर से चुनने के साथ!), या उस फ़ोल्डर में एक फ़ोल्डर बनाकर, या एक ASPX फ़ाइल, या .. अन्य चीजों को स्पर्श करके ऐसा करते हैं ... और वह इस बारे में है एक अनुप्रयोग पूल रीसायकल, के रूप में के रूप में विनाशकारी शून्य से देशी-कोड स्टार्टअप लागत (यह विशुद्ध रूप से एक प्रबंधित कोड (नेट) की अवधारणा, इसलिए केवल प्रबंधित कोड सामग्री यहां मौजूद होता है)।
एंटीवायरस इसे ट्रिगर भी कर सकता है क्योंकि यह web.config फ़ाइलों को स्कैन करता है, जिससे एक परिवर्तन अधिसूचना होती है, जिससे…।