ऐप पूल रीसायकल के बाद मैं अपने asp.net mvc webapp को कैसे गर्म कर सकता हूं?


23

मैं IIS 8.0 में ASP.NET MVC वेबऐप चला रहा हूं। अनुरोध लेने से पहले मेरे आवेदन को गर्म किया जाना चाहिए। जब हमारे पास नया कोड होता है, तो हमारे पास एप्लिकेशन को स्वचालित रूप से गर्म करने की प्रक्रिया होती है। हालाँकि, हम समय-समय पर ऐप पूल रीसायकल घटनाओं को देख रहे हैं, जिसके परिणामस्वरूप ऐप को गर्म नहीं किया जा रहा है।

क्या ऐप पूल रीसायकल इवेंट का पता लगाने और स्क्रिप्ट या कुछ कोड निष्पादित करने के लिए सबसे अच्छा अभ्यास है?

जवाबों:


55

यहाँ काफी चीजे है जो आप कर सकते है:

1. आवेदन प्रारंभिक

आप अनुप्रयोग प्रारंभ मॉड्यूल का उपयोग कर सकते हैं जो IIS 8.0 के साथ बॉक्स में आता है

आपके पास ऐसा कुछ हो सकता है web.config

<applicationInitialization
     doAppInitAfterRestart="true" >
   <add initializationPage="/" />
</applicationInitialization>

यह आपके ऐप के रूट पर एक अनुरोध भेजेगा ( initializationPage="/") जब भी आपका ऐप अपने आप शुरू होता है।

आप अपने एप्लिकेशन पूल के लिए स्टार्ट मोड को कॉन्फ़िगर कर सकते हैं Always Runningजिसका अर्थ है कि हर बार जब IIS पुनरारंभ होता है, तो यह तुरंत आपके आवेदन पूल को शुरू करना सुनिश्चित करेगा (यदि यह आपके एप्लिकेशन पूल पर राइट क्लिक से है तोAdvanced Settings

यहाँ छवि विवरण दर्ज करें

और Preloadअपनी साइट के लिए (साइट पर राइट क्लिक करें Manage Siteतब)Advanced Settings

यहाँ छवि विवरण दर्ज करें

2. निष्क्रिय टाइम-आउट अक्षम करें

इसके अतिरिक्त आप निष्क्रिय कर सकते हैं निष्क्रिय (डिफ़ॉल्ट रूप से IIS गतिविधि के 20 मिनट के बाद ऐप को बंद कर देगा) Idle Time-outअपने एप्लिकेशन पूल को 0 में बदलकर (अनंत)

यहाँ छवि विवरण दर्ज करें

3. आवधिक रीसाइक्लिंग को अक्षम करें

Regular Time Interval (minutes)डिफ़ॉल्ट रूप से IIS बंद करने से हर 29 घंटे में आपका ऐप रीसायकल हो जाएगा।

यहाँ छवि विवरण दर्ज करें

के लिये


3
इन सेटिंग्स में कमियों पर टिप्पणियाँ की सराहना की जाएगी। निश्चित रूप से एक कारण है कि वे चूक नहीं हैं।
user42134

2
निश्चित रूप से, उच्च मेमोरी खपत यदि आप एक ही IIS बॉक्स पर कई साइटें चलाते हैं क्योंकि सभी साइटें हर समय जीवित रहती हैं, जो बहुत कम साइट घनत्व की ओर ले जाती हैं। इसके अलावा आपके अनुप्रयोगों में मेमोरी लीक के खिलाफ कोई सुरक्षा नहीं है। ध्यान रखें कि IIS वेब के लिए लोकप्रिय होने से पहले आईआईएस आसपास था और कई ऐप देशी हैंडलर चला रहे थे जो कि लंबे समय तक चलने पर मेमोरी लीक और अजीब स्थिति में आ गए। यह उन sysadmins की मदद करने के लिए किया गया था जिन्हें ऐप के मुद्दों के कारण सर्वर को रीसेट करने के लिए आधी रात को जागना पड़ता था। वे अभी भी ज्यादातर पिछड़े तुलनात्मक कारणों के लिए चूक कर रहे हैं
ahmelsayed

1
IIS 7.5 में विकल्प - विंडोज सर्वर 2008 R2 ?
किकिनीत

2
आप काम करने के लिए # 1 के लिए IIS 7.5 के लिए एप्लिकेशन इनिशियलाइज़ेशन मॉड्यूल प्राप्त कर सकते हैं । # 2 और # 3 के रूप में लागू कर रहे हैं- IIS 7.5
ahmelsayed

1
FYI करें लोग इस प्रयोग करने के लिए: applicationInitializationमें चला जाता है<configuration><system.webServer>
पॉल

1

मेरे अनुभव से, आल्टरनेटिव और प्रीलोड इनेबल होने से ज्यादा स्पीड नहीं मिलती है। सबसे अधिक प्रतीक्षा समय गतिशील संकलन (जो कि एस्पक्स प्रीकाइल के साथ तय किया जा सकता है) और मेमोरी और कैशिंग में लोडिंग असेंबली पर जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.