2017-09-27 12 views
5

हमारे एएसपी.नेट एमवीसी अनुप्रयोग के प्रतिक्रिया समय को तेज करने के लिए, हम इसे स्थापित करने के बाद एप्लिकेशन को "गर्म" करना चाहते हैं (या ऐप पूल के पुनर्नवीनीकरण के बाद)। कुछ बार उपयोग किए जाने वाले लुकअप डेटा को SQL सर्वर डेटाबेस से लाया जाना चाहिए, और वैश्विक System.Runtime.Caching.MemoryCache ऑब्जेक्ट में संग्रहीत किया जाना चाहिए जो .NET प्रदान करता है।एएसपी.नेट एमवीसी - एप्लीकेशन वार्मअप - उपयोग करने के दो तरीकों में से कौन सा?

ऐसी स्थिति के लिए जहां आपके एएसपी.NET ऐप के लिए समर्पित आईआईएस के साथ एक समर्पित वीएम है, मैं सबसे पहले ऐप पूल को "हमेशा चल रहा" होने के लिए सेट करता हूं - यह चरण # 1 है।

इस स्थिति को देखते हुए, वहाँ दो विकल्प मैं देख रहा हूँ कर रहे हैं: System.Web.Hosting.IProcessHostPreloadClient इंटरफ़ेस के आधार पर वर्णित in this blog post by Scott Gu रूप

  1. आवेदन वार्मअप। अगर मैं सही ढंग से समझता हूं, तो यह कोड तब चलता है जब ऐप पूल शुरू होता है, और पहले अनुरोध को आवेदन में स्वीकार किया जाता है

  2. global.asax.cs में Application_Start ईवेंट का उपयोग करें। अगर मैं सही ढंग से समझता हूं, तो इस घटना को केवल कहा जाता है, जब एक बार होता है, जब एप्लिकेशन पहली बार शुरू होता है (जो इंस्टॉलेशन के बाद स्वचालित रूप से होता है, क्योंकि ऐप पूल "हमेशा चल रहा है" - दाएं?)

तो - इस सेटअप को दिया गया - जो आपके आवेदन को "प्री-वार्मिंग" का पसंदीदा तरीका है? क्या इन दो दृष्टिकोणों के बीच कोई महत्वपूर्ण अंतर है? दूसरे पर एक दृष्टिकोण के साथ जाने के बारे में मुझे जागरूक होने की क्या ज़रूरत है?

किसी भी इनपुट, संकेत, चेतावनियां, या आगे के लिंक को और विस्तार से समझाए जाने के लिए धन्यवाद!

+0

क्या आपकी ऐप प्रीकंपिल्ड है? अगर इतना विलय/अनमोल। मेरा मानना ​​है कि यह आपके "गर्म" समय में कारक होगा। ऐसा लगता है कि हमेशा चलने वाला उपर यह है कि आपके ऐप की पूरी तरह स्मृति में बैठी है और कभी भी "आवश्यकतानुसार" रिलीज़ नहीं होती है? – DaniDev

उत्तर

2

संक्षिप्त उत्तर, IProcessHostPreloadClient का उपयोग करें - यह स्टार्टअप पर तुरंत चलाएगा।

Application_Start एक गलत नामक है, यह वास्तव में पर पहले आग पर आग लगता है। इसका मतलब है कि साइट रीसायकल/पुनरारंभ हो सकती है और निष्क्रिय रह सकती है, जहां यह वार्मिंग हो सकती है।

यदि आपकी साइट आईआईएस 7 या उससे ऊपर है तो मुझे Application_Start का उपयोग करने के कारण से अवगत नहीं है।

+0

यहां एक प्रासंगिक/संबंधित प्रश्न है: https://stackoverflow.com/questions/10623303/run-plplication-start-immediately-when-plplication-pool-restarts-in-iis – STW

संबंधित मुद्दे