ईमानदार होने के लिए, मैंने IIS पर एक गंदी चाल को चालू करने की कोशिश की है और जब मैंने सोचा कि मैं इसके साथ दूर जा रहा हूं, तो मुझे एहसास हुआ कि मेरा काम नहीं करता है। यहाँ मैंने क्या करने की कोशिश की है:
1) मैं ASP.NET अनुप्रयोग जो है Preloader वर्ग कि inherits IProcessHostPreloadClient और सभी में भारी प्रारंभ करता है प्रीलोड विधि कार्यान्वयन (आवेदन जटिल है और यह एक बहुत बड़ा प्रणाली का एक हिस्सा है, इसलिए इसमें लगभग 2 मिनट की आवश्यकता है सभी आवश्यक करने के लिए कनेक्शन स्थापित करने के लिए सेवाओं और कुछ एकता पंजीकरण पूर्व-त्वरित)।
2) मेरे पास बहुत सारे काम हैं जो एप्लिकेशन शटडाउन (अनसब्सक्राइबिंग, डिस्कनेक्ट, डिस्पोज़िंग, ...) पर करने की आवश्यकता है, और मुझे लगता है कि ऐसा करने के लिए सबसे अच्छी जगह * एप्लीकेशन_इंड * विधि ग्लोबल .asax में स्थित है ।
3) सब कुछ ठीक काम करता है जब मेरे पास उपयोगकर्ता गतिविधि होती है (पहले आवेदन के बाद अनुरोध पूल जिसमें उपरोक्त वेब अनुप्रयोग शुरू किया जाता है, इसके कारण * Application_Start * कॉल किया जाएगा और उसके बाद * Application_End * को अनुप्रयोग पूल स्टॉप या रीसायकल पर बुलाया जाता है), लेकिन समस्याएं तब होता है जब कोई उपयोगकर्ता गतिविधि नहीं होती है और एप्लिकेशन 48 घंटे (कॉन्फ़िगर की गई आवश्यकता) के लिए सक्रिय होने के बाद खुद को पुनरारंभ करने का प्रयास करता है। चूंकि कोई अनुरोध नहीं था, आधिकारिक तौर पर आवेदन शुरू नहीं हुआ। एर्गो, इसे इनायत से नहीं रोका जा सकता है क्योंकि * Application_End * को नहीं बुलाया जाएगा।
4) अब गन्दा हिस्सा आता है ... मैंने Preload पद्धति के अंत में कोड से GET अनुरोध करने की कोशिश की है , और यह काम कर गया। लेकिन यह समाधान मुझे बुरा लगा, भले ही इसने काम किया हो। इसलिए, मैंने बहुत सी चीजों की कोशिश की है, और मैंने जो आखिरी कोशिश की वह यह है:
SimpleWorkerRequest swr = new SimpleWorkerRequest(string.Empty, string.Empty, tw);
HttpRuntime.ProcessRequest(swr);
... और यह उद्देश्य किया है। * Application_Start * को बुलाया गया था, (मैंने प्रतिक्रिया की जांच की है, यह लॉगिन पेज था जिसे प्रारंभिक अनुरोध में प्रदर्शित किया जाना था) और एप्लीकेशन पूल शटडाउन आवेदन पर * Application_End * में आवश्यक काम करके शान से समाप्त हो गया।
परंतु
इस तरह से आवेदन शुरू होने (प्रीलोड होने और शुरू होने) के बाद, यह तब हुआ जब मैं वेब ब्राउज़र के माध्यम से एप्लिकेशन तक पहुंचना चाहता था:
HTTP त्रुटि 500.21 - आंतरिक सर्वर त्रुटि हैंडलर "ExtensionlessUrlHandler-Integrated-4.0" में इसकी मॉड्यूल सूची में "ManagedPipelineHandler" एक खराब मॉड्यूल है
मैं यह पता लगाने में असमर्थ हूं। क्या कोई मुझे बता सकता है कि ऐसा क्यों होता है और इसे कैसे ठीक किया जाए?
अगर मुझे यह पता नहीं चलता है, तो मैं पहले समाधान (कोड से जीईटी अनुरोध भेजना) पर वापस जाऊंगा, लेकिन यह समस्या मुझे बग कर देगी क्योंकि मुझे यह भी पता नहीं है कि क्या गलत है।