IIS7 में DefaultAppPool और क्लासिक.NET AppPool के बीच क्या अंतर है?




web-applications iis-7 (3)

मुझे आईआईएस में टाइमआउट के साथ समस्या है। Web.config में सत्र टाइमआउट 60 मिनट पर सेट किया गया था लेकिन 20 मिनट के बाद सत्र समाप्त होता है।

यह समस्या केवल आईआईएस 7 में होती है और आईआईएस 5 में नहीं।

कुछ जांच के बाद, मैंने पाया कि यह एप्लिकेशन पूल के टाइमआउट के कारण था। यदि ऐप पूल कुछ भी किए बिना 20 मिनट बचा है, तो आईआईएस सत्र समाप्त करता है।

यदि एप्लिकेशन defaultAppPool का उपयोग कर रहा है तो यह हमेशा होता है लेकिन यदि मैं क्लासिक .NET ऐप पूल में ऐप पूल बदलता हूं, तो टाइमआउट नहीं होता है।

दोनों मोड में निष्क्रिय टाइमआउट है लेकिन केवल DefaultAppPool में ऐसा होता है।

  • ऐसा क्यों है?
  • क्लासिक .NET AppPool और DefaultAppPool होने के बीच क्या अंतर है?
  • क्लासिक और एकीकृत के बीच पाइपलाइन में क्या अंतर है?

DefaultAppPool वेब.config में सत्र टाइमआउट के लिए सेटिंग्स को अनदेखा करता है, लेकिन एएसपीनेट ऐप पूल web.config में सेटिंग्स का उपयोग करेगा।


आईआईएस 7 में डब्ल्यूसीएफ के बेहतर समर्थन के लिए कुछ बड़े बदलाव हैं और प्रमुख टुकड़ों में से एक नया एकीकृत एप्लिकेशन पूल है। पीडीसी से यह सत्र डब्ल्यूसीएफ सेवाओं को बेहतर प्रदर्शन करने के परिप्रेक्ष्य से इनमें से कुछ चुनौतियों के बारे में बात करता है: http://channel9.msdn.com/pdc2008/TL38/

इस पृष्ठ में आईआईएस 7 आर्किटेक्चर का एक अच्छा अवलोकन है: http://learn.iis.net/page.aspx/101/introduction-to-iis7-architecture/ । मैंने नीचे दिए गए दो अलग-अलग प्रकार के ऐप पूल के उद्देश्य से इस लेख से कुछ महत्वपूर्ण जानकारी शामिल की है:

एकीकृत अनुप्रयोग पूल मोड

जब एक अनुप्रयोग पूल एकीकृत मोड में होता है, तो आप आईआईएस और एएसपी.नेट के एकीकृत अनुरोध-प्रसंस्करण वास्तुकला का लाभ उठा सकते हैं। जब किसी एप्लिकेशन पूल में कोई कार्यकर्ता प्रक्रिया अनुरोध प्राप्त करती है, तो अनुरोध ईवेंट की ऑर्डर की गई सूची से गुज़रता है। प्रत्येक घटना अनुरोध के भाग को संसाधित करने और प्रतिक्रिया उत्पन्न करने के लिए आवश्यक देशी और प्रबंधित मॉड्यूल को कॉल करती है। एकीकृत मोड में एप्लिकेशन पूल चलाने के कई फायदे हैं। सबसे पहले आईआईएस और एएसपी.नेट के अनुरोध-प्रसंस्करण मॉडल एक एकीकृत प्रक्रिया मॉडल में एकीकृत किए गए हैं। यह मॉडल आईआईएस और एएसपी.नेट, जैसे प्रमाणीकरण में पहले डुप्लिकेट किए गए चरणों को समाप्त करता है। इसके अतिरिक्त, एकीकृत मोड सभी सामग्री प्रकारों में प्रबंधित सुविधाओं की उपलब्धता को सक्षम बनाता है।

क्लासिक एप्लिकेशन पूल मोड

जब क्लासिक मोड में कोई एप्लिकेशन पूल होता है, तो आईआईएस 7.0 आईआईएस 6.0 कार्यकर्ता प्रक्रिया अलगाव मोड में अनुरोधों को संभालता है। एएसपी.NET अनुरोध पहले आईआईएस में देशी प्रसंस्करण चरणों के माध्यम से जाते हैं और फिर प्रबंधित रनटाइम में प्रबंधित कोड की प्रसंस्करण के लिए Aspnet_isapi.dll पर जाते हैं। अंत में, प्रतिक्रिया भेजने के लिए आईआईएस के माध्यम से अनुरोध वापस भेजा गया है। आईआईएस और एएसपी.नेट अनुरोध-प्रसंस्करण मॉडल के इस अलगाव के परिणामस्वरूप प्रमाणीकरण और प्रमाणीकरण जैसे कुछ प्रसंस्करण चरणों के दोहराव में परिणाम मिलता है। इसके अतिरिक्त, प्रबंधित प्रमाणीकरण जैसे प्रबंधित कोड सुविधाएं, केवल एएसपी.NET अनुप्रयोगों या अनुप्रयोगों के लिए उपलब्ध हैं जिनके लिए आपके पास स्क्रिप्ट है, सभी अनुरोधों को aspnet_isapi.dll द्वारा प्रबंधित किया जा सकता है। उत्पादन वातावरण को आईआईएस 7.0 में अपग्रेड करने और एकीकृत मोड में एप्लिकेशन पूल में एप्लिकेशन असाइन करने से पहले एकीकृत मोड में संगतता के लिए अपने मौजूदा अनुप्रयोगों का परीक्षण करना सुनिश्चित करें। यदि एप्लिकेशन एकीकृत मोड में काम करने में विफल रहता है तो आपको केवल क्लासिक मोड में एप्लिकेशन पूल में एक एप्लिकेशन जोड़ना चाहिए। उदाहरण के लिए, आपका एप्लिकेशन आईआईएस से प्रबंधित रनटाइम में पारित प्रमाणीकरण टोकन पर भरोसा कर सकता है, और, आईआईएस 7.0 में नए आर्किटेक्चर के कारण, प्रक्रिया आपके आवेदन को तोड़ देती है।


मुझे लगता है कि आपके प्रश्न में इसका जवाब है। आईआईएस 6 और 7 में एप्लिकेशन पूल टाइमआउट की अवधारणा है, यह सत्र टाइमआउट से अलग है।

मोड के बीच क्या अंतर है ... पहले ही संबोधित किया गया है। मुझे अनिश्चितता है कि पाइपलाइनों और मोड में मतभेदों के बारे में आपके प्रश्न आपकी समस्या से संबंधित हैं - टाइमआउट।

कुछ परिप्रेक्ष्य: किसी भी ट्रैफ़िक के साथ किसी वेबसाइट पर निष्क्रिय टाइमआउट नहीं होगा। आपको शायद एक समस्या है जो केवल एक क्यूए साइट या आपके देव बॉक्स में होती है। निष्क्रिय टाइमआउट सेटिंग आपके देव बॉक्स पर संसाधनों को बचाने और $ 5 / माह होस्टिंग कंपनियों को बहुत कम उपयोग की गई वेब साइटों (जैसे मेरा ब्लॉग) के साथ मौजूद है। आप शायद सार्वजनिक साइट पर निष्क्रिय टाइमआउट नहीं चाहते हैं।

सत्र टाइमआउट - वेब कॉन्फ़िगरेशन में सेट करें, यदि कोई उपयोगकर्ता सर्वर को हिट नहीं करता है, तो उनके सत्र का समय समाप्त हो जाता है।

निष्क्रिय टाइमआउट कोई भी 20 मिनट तक वेब सर्वर को छूता है, इसलिए संसाधनों को सहेजने के लिए बंद करें। आईआईएस 6 में , यह ऐप पूल के प्रदर्शन टैब पर है - और इसे अक्षम करना आसान है। आईआईएस 7 में, आप एप्लिकेशन पूल उन्नत सेटिंग्स में या प्रक्रिया मॉडल मॉडल में सेट कर सकते हैं। मैं आईआईएस 6 के रूप में ज्यादा आईआईएस 7 नहीं चलाता, लेकिन ऐसा लगता है कि वेब.कॉन्फिग से तत्व को हटाने या 0 पर सेट करना, अनंत निष्क्रिय टाइमआउट प्राप्त करता है।





application-pool