दिलचस्प पोस्ट
कस्टम स्विफ्ट क्लास को एनएससीडींग के साथ UserDefaults में सहेज रहा है नोवासडेफफ़ाउंड त्रुटि हो रही है जब आम जावा में इस्तेमाल होता है। String.StringUtils को एंड्रॉइड जावा कोड में? UIImagePickerController कैमरा पूर्वावलोकन परिदृश्य एप में चित्र है आरवीएम स्थापना काम नहीं कर रहा है: "आरवीएम एक फ़ंक्शन नहीं है" पायथन में स्ट्रिंग्स को कैसे परिवर्तित करें? मैं ऑब्जेक्ट के अंदर objc_setAssociatedObject / objc_getAssociatedObject का उपयोग कैसे करूं? कार्यक्रम में आईओएस में अपना फोन नंबर मिलता है "Java.lang.OutOfMemoryError: जावा हीप स्पेस" त्रुटि (64 एमबी हेप आकार) से कैसे निपटें एचटीएमएल क्षेत्र टैग पर होवरिंग कैसे करें? javac को आंतरिक या बाह्य कमांड, ऑपरेटिव प्रोग्राम या बैच फ़ाइल के रूप में मान्यता नहीं है एक जार फ़ाइल में रिलीज को मर्ज करने का सबसे आसान तरीका पायथन के उपयोग सेलेनियम वेबड्राइवर में वेब एलेमेंट का HTML स्रोत प्राप्त करें जीवीएम में टैब क्लोज़ बटन को कैसे दिखाना है? पेज रिफ्रेश के बिना जावा के साथ हैश को कैसे हटाया जा सकता है? कैसे jQuery के साथ एक iframe की सामग्री तक पहुँचने के लिए?

आईआईएस 7 में 'क्लासिक' और 'एकीकृत' पाइप लाइन मोड में क्या अंतर है?

मैं कल रात एक एएसपी.नेट एमवीसी एप्लीकेशन की तैनाती कर रहा था, और यह पाया कि आईआईएस 7 के साथ एकीकृत मोड में सेट करने के लिए यह कम काम है। मेरा सवाल यह है कि अंतर क्या है? और एक या दूसरे का उपयोग करने के निहितार्थ क्या हैं?

वेब के समाधान से एकत्रित समाधान "आईआईएस 7 में 'क्लासिक' और 'एकीकृत' पाइप लाइन मोड में क्या अंतर है?"

शास्त्रीय मोड (IIS6 और नीचे का एकमात्र मोड) एक ऐसा मोड है जहां आईआईएस केवल आईएसएपीआई एक्सटेंशन और आईएसएपीआई फिल्टर के साथ सीधे काम करता है। वास्तव में, इस मोड में, एएसपी.नेट सिर्फ एक आईएसएपीआई एक्सटेंशन (aspnet_isapi.dll) और एक आईएसएपीआई फिल्टर (aspnet_filter.dll) है। IIS सिर्फ आईएसपीआईआई में लागू एक बाहरी प्लगइन के रूप में एएसपी.नेट को मानता है और इसके साथ एक ब्लैक बॉक्स की तरह कार्य करता है (और जब यह एएसपी.नेट को अनुरोध देने की जरूरत होती है)। इस मोड में, एएसपी.नेट आईआईएस के लिए PHP या अन्य प्रौद्योगिकियों से बहुत अलग नहीं है I

दूसरी तरफ, एकीकृत मोड, आईआईएस 7 में एक नया मोड है, जहां आईआईएस पाइपलाइन कसकर एकीकृत है (यानी ये वही है) जैसा कि एएसपी.नेट अनुरोध पाइपलाइन। एएसपी.एन.टी. हर तरह के अनुरोधों को देख सकता है जो रास्ते में बातें करना चाहता है। एएसपी.नेट को अब एक बाहरी प्लगइन के रूप में नहीं माना जाता है यह आईआईएस में पूरी तरह से मिश्रित और एकीकृत है इस मोड में, HttpModule मूल रूप से लगभग उतनी ही शक्ति होती है क्योंकि आईएसएपीआई फ़िल्टर के पास होता था और HttpHandler एक्सटेंशन में एएसपी.नेट HttpHandler लगभग समकक्ष क्षमता हो सकती थी। इस मोड में, एएसपी.नेट मूल रूप से आईआईएस का एक हिस्सा है।

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

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

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

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

जब एक अनुप्रयोग पूल क्लासिक मोड में होता है, IIS 7.0 IIS 6.0 वर्कर प्रक्रिया अलगाव मोड के रूप में अनुरोध को संभालता है। एएसपी.NET अनुरोध पहले आईआईएस में मूल प्रसंस्करण कदमों के माध्यम से जाते हैं और तब प्रबंधित रैंकटाइम में प्रबंधित कोड के प्रसंस्करण के लिए aspnet_isapi.dll के लिए रूट किया जाता है। अंत में, प्रतिक्रिया भेजने के लिए IIS के माध्यम से अनुरोध वापस भेजा जाता है।

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

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

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

मूल स्रोत: आईआईएस आर्किटेक्चर का परिचय

IIS 6.0 और पिछले संस्करण:

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

यह प्रभावी रूप से दो अलग-अलग सर्वर (अनुरोध / प्रतिक्रिया) पाइपलाइनों, एक मूल आईएसएपीआई फ़िल्टर और एक्सटेंशन घटकों के लिए, और प्रबंधित एपैंटमेंट घटकों के लिए दूसरे को उजागर किया। ASP.NET घटक एएसपी.नेट आईएसएपीआई विस्तार बुलबुले के अंदर पूरी तरह कार्यान्वित करेंगे और IIS स्क्रिप्ट मानचित्र विन्यास में एएसपी.नेट से मैप किए गए अनुरोधों के लिए ही होंगे

गैर asp.NET सामग्री प्रकारों के लिए अनुरोध: – छवियां, पाठ फ़ाइलें, HTML पृष्ठ, और स्क्रिप्ट-कम एएसपी पृष्ठ, IIS या अन्य ISAPI एक्सटेंशन द्वारा संसाधित किए गए थे और ASP.NET को दिखाई नहीं दे रहे थे।

इस मॉडल की मुख्य सीमा यह थी कि एएसपी.एन.टी.नेट मॉड्यूल और कस्टम एएसपी.नेट एप्लिकेशन कोड द्वारा प्रदान की गई सेवाएं गैर एएसपी.नेट अनुरोधों के लिए उपलब्ध नहीं थीं

एक स्क्रिप्ट एमएपी क्या है?

स्क्रिप्ट मैप्स का उपयोग आईएएसपीआई हैंडलर के साथ फ़ाइल एक्सटेंशन को संबद्ध करने के लिए किया जाता है जो उस फ़ाइल प्रकार का अनुरोध किया जाता है। स्क्रिप्ट मैप में एक वैकल्पिक सेटिंग भी है जो पुष्टि करती है कि अनुरोध से संबंधित भौतिक फाइल संसाधित करने की अनुमति देने से पहले मौजूद है

एक अच्छा उदाहरण seen here जा सकता seen here

IIS 7 और ऊपर

आईआईएस 7.0 और इसके बाद के संस्करणों को एक नया सी ++ एपीआई आधारित आईएसएपीआई प्रदान करने के लिए जमीन से फिर से इंजीनियर किया गया है।

आईआईएस 7.0 और उससे ऊपर एएसपी.नेट रनटाइम को वेब सर्वर की मुख्य कार्यक्षमता के साथ एकीकृत करता है, एक एकमात्र (सिंगल) अनुरोध प्रोसेसिंग पाइप लाइन प्रदान करता है जो कि मॉड्यूल (आईएचटीपीएमड्यूल)

इसका अर्थ यह है कि आईआईएस 7 प्रक्रियाएं उन अनुरोधों का अनुरोध करती हैं जो NON ASP.NET Modules / native IIS modules और ASP.NET modules दोनों चरणों में अनुरोध प्रसंस्करण प्रदान करते हैं, ये किसी भी प्रकार की सामग्री के लिए आती हैं। यही वजह है कि गैर asp.NET सामग्री प्रकार ( .html, स्थैतिक फाइलें) .नेट मॉड्यूल द्वारा नियंत्रित किया जा सकता है।

  • आप नए प्रबंधित मॉड्यूल ( IHttpModule ) का निर्माण कर सकते हैं जिसमें सभी एप्लिकेशन सामग्री के लिए निष्पादित करने की योग्यता है, और आपके एप्लिकेशन पर अनुरोध संसाधन सेवाओं का एक उन्नत सेट प्रदान किया गया है।
  • नए प्रबंधित हैंडलर जोड़ें ( IHttpHandler )

क्लासिक मोड में आईआईएस एएसएपीआई एक्सटेंशन और आईएसएपीआई फिल्टर को सीधा तरीके से काम करता है। और दो पाइप लाइन, एक देशी कोड के लिए और प्रबंधित कोड के लिए अन्य का उपयोग करता है। आप केवल क्लासिक मोड IIS 7.x में IIS 6 के रूप में कार्य कर सकते हैं और IIS 7.x सुविधाओं के अतिरिक्त लाभ प्राप्त नहीं कर सकते कह सकते हैं।

एकीकृत मोड में आईआईएस और एएसपी.Net क्लासिक मोड के मामले में Asp.net पर सिर्फ दो DLLs पर निर्भर करते हुए कसकर युग्मित होते हैं।

क्लासिक मोड आमतौर पर, IIS 6.0 से आईआईएस 7.0 तक एक वेब अनुप्रयोग को ले जाने के लिए क्लासिक मोड की आवश्यकता होती है कि क्लासिक मोड में चल रहे एप्लिकेशन पूल में आप एप्लिकेशन को डालते हैं। उदाहरण के लिए, जब आप IIS 7.0 को स्थापित करते हैं, तो डिफ़ॉल्ट रूप से वेब सर्वर एकीकृत मोड में संचालित करने के लिए कॉन्फ़िगर किया गया है। इसे डिफॉल्ट एप्लीकेशन पूल के तहत चलाने के लिए कॉन्फ़िगर भी किया जाता है, जिसे डिफॉल्ट ऐपपुल कहा जाता है क्लासिक मोड में वेब अनुप्रयोग चलाने के लिए, Classic.NETAppPool एप्लिकेशन का उपयोग करें या क्लासिक मोड में चलाने के लिए कॉन्फ़िगर किया गया एक नया एप्लिकेशन पूल बनाएं। एप्लिकेशन पूल बनाने के तरीके के बारे में जानकारी के लिए, एक अनुप्रयोग पूल बनाएँ देखें। क्लासिक मोड में चलाए जाने वाले किसी अनुप्रयोग में IHttpModule इंटरफ़ेस को कार्यान्वित करने वाले कस्टम मॉड्यूल केवल पाइपलाइन अनुरोधों के बारे में अधिसूचित किए जाते हैं जो एएसपी.नेट रनटाइम द्वारा नियंत्रित होते हैं। उदाहरण के लिए, उन्हें .aspx पेज के लिए अनुरोध के बारे में सूचित किया जाता है। क्लासिक मोड के लिए आवेदन जीवन चक्र आईआईएस 6.0 में एएसपी.नेट के लिए जीवन चक्र के समान है। अधिक जानकारी के लिए, आईआईएस 5.0 और 6.0 के लिए एएसपी। नेट एप्लीकेशन लाइफ साइकल अवलोकन देखें। अगर क्लासिक मोड में चलने वाला कोई एप्लिकेशन हैंडलर को आईआईएस में एक कस्टम विस्तार को संभालने के लिए एक स्क्रिप्ट मैप की आवश्यकता है, तो आपको एच एच एचडलर समूह और हैंडलर समूह दोनों में हेन्डलर को पंजीकृत करना होगा। आप हैंडलर तत्व में मॉड्यूल और स्क्रिप्ट प्रोसेसर विशेषता निर्दिष्ट करके ASP.NET ISAPI एक्सटेंशन (Aspnet_isapi.dll) में कस्टम फ़ाइल-नाम एक्सटेंशन को मैप करते हैं। ये विशेषताएँ निर्दिष्ट करती हैं कि हेडलर को निर्धारित करने वाले मॉड्यूल ISAPI एक्सटेंशन है, और वे उस एक्सटेंशन का पथ निर्दिष्ट करते हैं। क्लासिक मोड में IIS 7.0 आईआईएस के पिछले संस्करणों के साथ पिछड़े संगतता प्रदान करता है। हालांकि, यदि आप एकीकृत मोड में एप्लिकेशन को चलाते हैं, तो आपको मॉड्यूल और स्क्रिप्टप्रोसेसर विशेषताओं को निकालना होगा। अधिक जानकारी के लिए, IIS में एक HTTP हैंडलर एक्सटेंशन को कॉन्फ़िगर कैसे करें देखें। जब आप IIS 6.0 से क्लासिक मोड में वेब अनुप्रयोग चलाते हैं, तो बिना किसी बदलाव के एकीकृत मोड में काम करने की गारंटी नहीं होती है। यदि आप क्लासिक मोड से समन्वित मोड में किसी एप्लिकेशन को स्विच करते हैं (और कोई कस्टम मॉड्यूल और हैंडलर बदलते हैं), तो आपको एकीकृत मोड में सही ढंग से चलाने के लिए एप्लिकेशन के लिए अतिरिक्त बदलाव करना पड़ सकता है इस विषय में अगले खंड बताता है कि कैसे एक आवेदन IIS 7.0 इंटीग्रेटेड मोड में स्थानांतरित करने के लिए।

एकीकृत मोड वेब अनुप्रयोग जो कस्टम मॉड्यूल या हैंडलर को शामिल नहीं करते IIS 7.0 में इंटीग्रेटेड मोड में बदलाव किए बिना काम करेंगे। वेब अनुप्रयोग जो कस्टम मॉड्यूल या हैंडलरों पर भरोसा करते हैं, उन्हें एकीकृत मोड में चलाने के लिए एप्लिकेशन को सक्षम करने के लिए निम्नलिखित कदमों की आवश्यकता होती है: सिस्टम में वेबमास्टर्स सिस्टम के वेबसॉन्फ़र अनुभाग में कस्टम मॉड्यूल और हैंडलर पंजीकृत करें। माइग्रेटिंग में वर्णित विधियों में से एक का उपयोग करके बाद में इस विषय में समन्वित मोड अनुभाग में एक वेब कॉन्फ़िग फाइल। HttpApplication अनुरोध पाइपलाइन इवेंट जैसे कि BeginRequest और EndRequest के लिए इवेंट हैंडलर्स को केवल कस्टम मॉड्यूल की इनिट पद्धति में परिभाषित करें। आईआईएस 7.0 के लिए अपग्रेडिंग एएसपी.नेट अनुप्रयोगों के "एकीकृत मोड और क्लासिक मोड के बीच ज्ञात मतभेद" में चर्चा की गई किसी भी मुद्दे को ध्यान में रखते हुए सुनिश्चित करें कि IIS 7.0 एकीकृत मोड और क्लासिक मोड के बीच अंतर। IHttpModule इंटरफ़ेस को लागू करने वाले मॉड्यूल को प्रबंधित-कोड मॉड्यूल के रूप में संदर्भित किया जाता है क्योंकि वे .NET फ़्रेमवर्क का उपयोग करके निर्मित होते हैं। प्रबंधित-कोड मॉड्यूल सर्वर स्तर पर या एप्लिकेशन स्तर पर पंजीकृत किया जा सकता है। देशी-कोड मॉड्यूल DLL (गैर-प्रबंधित कोड) हैं जो केवल सर्वर स्तर पर पंजीकृत हैं। कोर एएसपी.नेट सुविधाओं, जैसे सत्र राज्य और रूपों का प्रमाणीकरण, समन्वित मोड में प्रबंधित मॉड्यूल के रूप में कार्यान्वित किया जाता है। जब आप क्लासिक से इंटीग्रेटेड मोड में किसी एप्लिकेशन को ले जाते हैं, तो आप क्लासिक मोड के लिए कस्टम मॉड्यूल और हैंडलर रजिस्ट्रेशन छोड़ सकते हैं या आप उन्हें हटा सकते हैं। यदि आप क्लासिक मोड में उपयोग किए जाने वाले httpModules और httpHandlers पंजीकरण नहीं निकालते हैं, तो आपको त्रुटियों से बचने के लिए मान्यकरण तत्व का मान्य मान्य एकीकृत कॉन्फ़िगरेशन विशेषता सेट करना होगा। सत्यापन तत्व सिस्टम का एक बच्चा तत्व है। वेबसर्वर तत्व अधिक जानकारी के लिए, IIS 7.0 के साथ ASP.NET एकीकरण में "माइग्रेशन संदेश को अक्षम करना" अनुभाग देखें।