2009-04-17 28 views
50

मुझे आईआईएस में टाइमआउट के साथ समस्या है। Web.config में सत्र टाइमआउट 60 मिनट पर सेट किया गया था लेकिन 20 मिनट के बाद सत्र समाप्त होता है।आईआईएस 7 में DefaultAppPool और क्लासिक .NET AppPool के बीच क्या अंतर है?

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

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

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

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

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

उत्तर

4

क्लासिक पूल आईआईएस और आईएसएपीआई के लिए अलग प्रोसेसिंग पाइपलाइनों का उपयोग करके ऐप पूल में अनुरोधों को संसाधित करता है। एक एकीकृत पाइपलाइन, आईआईएस और एएसपी.नेट एक (बेहतर प्रदर्शन) एकीकृत एकीकृत आईआईएस 7.0 की बेहतर सुविधाओं का लाभ केवल एक प्रक्रिया का उपयोग करता है। अच्छा अभ्यास प्रत्येक एप्लिकेशन के लिए एक नया एप्लिकेशन पूल बनाना है, फिर आवेदन आवश्यकताओं के अनुसार अलग-अलग कॉन्फ़िगर करें।

1. भेजे HTTP अनुरोध आईआईएस कोर के माध्यम से प्राप्त होता है:


क्लासिक मोड नीचे दिए गए चरणों इस प्रकार है।

2. अनुरोध ISAPI के माध्यम से संसाधित किया जाता है।

3. अनुरोध ASP.NET के माध्यम से संसाधित किया जाता है।

4. अनुरोध आईएसएपीआई के माध्यम से वापस गुजरता है।

1. भेजे HTTP अनुरोध आईआईएस कोर के माध्यम से प्राप्त होता है:

5. अनुरोध आईआईएस कोर जहां HTTP प्रतिसाद अंत में वितरित किया जाता है


एकीकृत मोड का उपयोग करता है के माध्यम से वापस लौटा देता है और एएसपी.नेट।

2. उचित हैंडलर अनुरोध निष्पादित करता है और HTTP प्रतिसाद

बढ़ाएँ वेब में सत्र टाइमआउट देता है।के रूप में प्रति

config बढ़ रही इस अधिक संसाधन उपभोग करने के लिए आवेदन का कारण बनता है, जैसे स्मृति

2

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

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

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

सत्र समय समाप्ति - वेब config में सेट, अगर एक उपयोगकर्ता सर्वर बाहर हिट नहीं करता, उनके सत्र का समय।

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

0

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

58

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

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

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

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

क्लासिक अनुप्रयोग पूल मोड

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

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

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