2008-12-24 20 views
56

में एक HttpHandler क्या है ASP.NET में एक HttpHandler क्या है? इसका उपयोग क्यों किया जाता है?ASP.NET

+1

शायद आप इस पृष्ठ का उपयोग एमएसडीएन से शुरुआत के रूप में कर सकते हैं: [http://msdn.microsoft.com/en-us/library/bb398986.aspx](http://msdn.microsoft.com/en- हमें/लाइब्रेरी/bb398986.aspx) – M4N

उत्तर

72

में सबसे सरल शब्द, एक एएसपी.NET HttpHandler एक वर्ग है जो System.Web.IHttpHandler इंटरफ़ेस लागू करता है।

एएसपी.नेट HTTPHandlers आपके एएसपी.NET वेब एप्लिकेशन सर्वर से किए गए अनुरोधों को रोकने के लिए ज़िम्मेदार हैं। वे ASP.NET साइट पर किए गए अनुरोध के जवाब में प्रक्रियाओं के रूप में चलते हैं। सबसे आम हैंडलर एक एएसपी.नेट पेज हैंडलर है जो .aspx फ़ाइलों को संसाधित करता है। जब उपयोगकर्ता .aspx फ़ाइल का अनुरोध करते हैं, तो पृष्ठ पृष्ठ द्वारा पृष्ठ हैंडलर के माध्यम से अनुरोध संसाधित किया जाता है।

ASP.NET में कुछ डिफ़ॉल्ट HTTP संचालकों प्रदान करता है:

  • पृष्ठ हैंडलर (.aspx): वेब पृष्ठ की समस्या को
  • उपयोगकर्ता नियंत्रण हैंडलर (.ascx): संभालती वेब उपयोगकर्ता नियंत्रण पृष्ठों
  • वेब सेवा हैंडलर (.asmx): वेब सेवा पृष्ठों
  • ट्रेस हैंडलर (trace.axd) संभालता है: संभालती कार्यक्षमता का पता लगाने

आप अपना खुद का कस्टम HTTP हैंडलर बना सकते हैं जो ब्राउज़र पर कस्टम आउटपुट प्रस्तुत करता है। एएसपी.नेट में HTTP हैंडलर के लिए विशिष्ट परिदृश्य उदाहरण के लिए

  • गतिशील रूप से बनाई गई छवियों (उदाहरण के लिए चार्ट) या चित्रों का आकार बदलना है।
  • आरएसएस फीड जो फेंकना आरएसएस-स्वरूपित एक्सएमएल

आप लागू एक तुल्यकालिक नियंत्रक और एक अतुल्यकालिक हैंडलर बनाने के लिए IHttpAsyncHandler इंटरफेस बनाने के लिए IHttpHandler इंटरफ़ेस। इंटरफेस के लिए आपको ProcessRequest विधि और IsReusable संपत्ति को लागू करने की आवश्यकता होती है। जबकि बूलियन IsReusable संपत्ति निर्दिष्ट करती है कि अपने हैंडलर पुनः उपयोग के लिए जमा किया जा सकता है (प्रदर्शन को बढ़ाने के लिए) या एक नया हैंडलर प्रत्येक अनुरोध के लिए आवश्यक है कि क्या

ProcessRequest विधि, किए गए अनुरोधों के लिए वास्तविक प्रसंस्करण संभालती है।

+1

+ आपके संक्षिप्त और आसान समझ स्पष्टीकरण के लिए धन्यवाद – Mostafa

+2

क्या आप बता सकते हैं कि आपने कब कहा ** सबसे आम हैंडलर एक एएसपी.नेट पेज हैंडलर है जो .aspx फ़ाइलों को संसाधित करता है। जब उपयोगकर्ता .aspx फ़ाइल का अनुरोध करते हैं, तो पृष्ठ पृष्ठ द्वारा पृष्ठ हैंडलर के माध्यम से अनुरोध संसाधित किया जाता है। **? या किसी भी लिंक की बहुत सराहना की जाएगी। धन्यवाद। –

+0

@PKKG बस इस आलेख को देखें: http://msdn.microsoft.com/en-us/library/bb398986(v=vs.100).aspx#Background – splattne

14

एक HttpHandler (या IHttpHandler) मूल रूप से कुछ भी है जो सामग्री की सेवा के लिए ज़िम्मेदार है। एक एएसपी.नेट पेज (एएसपीएक्स) हैंडलर का एक प्रकार है।

आप अपनी खुद की, उदाहरण के लिए, छवियों आदि अपने आप में एक डेटाबेस से बजाय वेब सर्वर से सेवा करने के लिए लिख सकते हैं, या एक सरल POX सेवा लिखने के लिए (न कि सोप से/WCF/आदि)

+0

आप कृपया इसे समझाएं ** उदाहरण के लिए, आप स्वयं को वेब सर्वर से बजाए डेटाबेस से छवियों आदि की सेवा करने के लिए लिख सकते हैं, या एक साधारण POX सेवा लिखने के बजाय एसओएपी/डब्ल्यूसीएफ/आदि) **? –

+0

जब आप किसी विशेष पृष्ठ का अनुरोध करते हैं, तो यह 'HttpHandler' कहलाता है? ऐसा इसलिए है क्योंकि वह पृष्ठ 'HttpHandler' से लिया गया है और फिर' पृष्ठ 'ऑब्जेक्ट बनाया गया है और फिर' पृष्ठ ईवेंट 'कहा जाता है? क्या ऐसा है? –

2

HttpHandler उदाहरण के लिए,

HTTP ASP.NET 2.0

एक हैंडलर किसी ब्राउज़र से अनुरोध को पूरा करने के लिए जिम्मेदार है में हैंडलर। अनुरोध है कि एक ब्राउज़र प्रबंधन या तो फ़ाइल एक्सटेंशन द्वारा या हैंडलर को सीधे कॉल करके संभाला जाता है। आने वाले एचटीपी अनुरोधों की सेवा के लिए निम्न स्तर का अनुरोध और प्रतिक्रिया API एएसपी.Net में एचटीपी हैंडलर हैं। सभी हैंडलर IHttpHandler इंटरफ़ेस को लागू करते हैं, जो System.Web नामस्थान में स्थित है। हैंडलर कुछ हद तक इंटरनेट सर्वर एप्लिकेशन प्रोग्रामिंग इंटरफेस (आईएसएपीआई) एक्सटेंशन के समान हैं।

एसिंक्रोनस हैंडलर बनाने के लिए एक सिंक्रोनस हैंडलर और IHttpAsyncHandler इंटरफ़ेस बनाने के लिए IHttpHandler इंटरफ़ेस को लागू करते हैं। इंटरफेस के लिए आपको ProcessRequest विधि और IsReusable प्रॉपर्टी को लागू करने की आवश्यकता होती है। ProcessRequest विधि अनुरोधों के लिए वास्तविक प्रसंस्करण को संभालती है, जबकि बूलियन IsReusable संपत्ति निर्दिष्ट करती है कि आपके हैंडलर को प्रदर्शन बढ़ाने के लिए पुन: उपयोग करने के लिए पूल किया जा सकता है या प्रत्येक अनुरोध के लिए एक नया हैंडलर आवश्यक है या नहीं।

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

का विन्यास HTTP हैंडलर

विन्यास अनुभाग हैंडलर IHttpHandler या IHttpHandlerFactory वर्ग के लिए भेजे यूआरएल मानचित्रण के लिए जिम्मेदार है। इसे कंप्यूटर, साइट या एप्लिकेशन स्तर पर घोषित किया जा सकता है। उपनिर्देशिका इन सेटिंग्स का उत्तराधिकारी है। व्यवस्थापक अनुभाग को कॉन्फ़िगर करने के लिए टैग निर्देश का उपयोग करते हैं। निर्देशों को एक शीर्ष-डाउन अनुक्रमिक क्रम में व्याख्या और संसाधित किया जाता है। अनुभाग हैंडलर के लिए निम्न सिंटैक्स का उपयोग करें:

बनाना HTTP हैंडलर

एक HTTP हैंडलर बनाने के लिए, आप IHttpHandler इंटरफ़ेस को लागू करना होगा। IHttpHandler इंटरफ़ेस में निम्न विधि के साथ एक विधि और एक प्रॉपर्टी है: शून्य प्रक्रिया प्रोसेक्वेस्ट (एचटीपी कॉन्टेक्स्ट); बूल IsReusable {get;}

+3

इसे कहीं से कहीं भी वर्बैटिम कॉपी किया गया था, संभवतः http://24x7aspnet.blogspot.com/2009/06/http-handler-in-aspnet-20.html, और पहले से ही एक उच्च मूल्य स्वीकृत उत्तर है। न्यूनतम उद्धरण स्रोतों पर कृपया। यदि आपने अपने शब्दों में उत्तर दिया तो यह बेहतर होगा। – GargantuChet

0

कोई भी वर्ग जो System.Web.IHttpHandler लागू करता है इंटरफ़ेस HttpHandler बन जाता है। और यह वर्ग ASP.NET साइट पर किए गए अनुरोध के जवाब में प्रक्रियाओं के रूप में चलाया जाता है।

सबसे आम हैंडलर एक एएसपी.NET पृष्ठ हैंडलर है जो .aspx फ़ाइलों को संसाधित करता है। जब उपयोगकर्ता .aspx फ़ाइल का अनुरोध करते हैं, तो पृष्ठ पृष्ठ द्वारा पृष्ठ हैंडलर (कक्षा जो System.Web.IHttpHandler इंटरफ़ेस लागू करती है) के माध्यम से पृष्ठ द्वारा संसाधित की जाती है।

आप अपने कस्टम HTTP हैंडलर बना सकते हैं जो ब्राउज़र पर कस्टम आउटपुट प्रस्तुत करते हैं।

कुछ ASP.NET डिफ़ॉल्ट हैंडलर हैं:

  1. पृष्ठ हैंडलर (.aspx) - वेब पृष्ठों का प्रबंधन
  2. उपयोगकर्ता नियंत्रण हैंडलर (.ascx) - हैंडल वेब उपयोगकर्ता नियंत्रण पृष्ठों
  3. वेब सेवा हैंडलर (.asmx) - हैंडल कार्यक्षमता का पता लगाने
0

एक ASP.N - वेब सेवा पृष्ठों

  • ट्रेस हैंडलर (trace.axd) हैंडल ईटी HTTP हैंडलर प्रक्रिया है (जिसे अक्सर "एंडपॉइंट" कहा जाता है) जो एएसपी.नेट वेब एप्लिकेशन के अनुरोध के जवाब में चलता है। सबसे आम हैंडलर एक एएसपी.नेट पेज हैंडलर है जो .aspx फ़ाइलों को संसाधित करता है। जब उपयोगकर्ता .aspx फ़ाइल का अनुरोध करते हैं, तो पृष्ठ पृष्ठ द्वारा पृष्ठ हैंडलर के माध्यम से अनुरोध संसाधित किया जाता है। आप अपने स्वयं के HTTP हैंडलर बना सकते हैं जो ब्राउज़र पर कस्टम आउटपुट प्रस्तुत करते हैं।

  • 0

    एक ASP.NET HTTP हैंडलर प्रक्रिया है (जिसे अक्सर "एंडपॉइंट" कहा जाता है) जो एएसपी.नेट वेब एप्लिकेशन के अनुरोध के जवाब में चलता है। सबसे आम हैंडलर एक एएसपी.नेट पेज हैंडलर है जो .aspx फ़ाइलों को संसाधित करता है। जब उपयोगकर्ता .aspx file का अनुरोध करते हैं, तो पृष्ठ पृष्ठ द्वारा पृष्ठ हैंडलर के माध्यम से अनुरोध संसाधित किया जाता है।

    एएसपी.नेट पेज हैंडलर केवल एक प्रकार का हैंडलर है। एएसपी.नेट .asmx files के लिए वेब सेवा हैंडलर जैसे कई अन्य अंतर्निर्मित हैंडलर के साथ आता है।

    जब आप विशेष हैंडलिंग चाहते हैं तो आप कस्टम HTTP हैंडलर बना सकते हैं जिन्हें आप अपने एप्लिकेशन में फ़ाइल नाम एक्सटेंशन का उपयोग करके पहचान सकते हैं। उदाहरण के लिए, निम्न परिदृश्यों कस्टम HTTP संचालकों का अच्छा उपयोग करता होगा:

    आरएसएस फीड एक साइट के लिए आरएसएस फ़ीड बनाने के लिए, आप एक हैंडलर कि उत्सर्जन करता है आरएसएस प्रारूपित एक्सएमएल बना सकते हैं। फिर आप अपने आवेदन में कस्टम हैंडलर को .rss एक्सटेंशन (उदाहरण के लिए) को बाध्य कर सकते हैं। जब उपयोगकर्ता आपकी साइट पर अनुरोध भेजते हैं जो .rss में समाप्त होता है, तो ASP.NET अनुरोध को संसाधित करने के लिए आपके हैंडलर को कॉल करेगा।

    छवि सर्वर आप अपने वेब आवेदन कई आकारों में छवियों सेवा करना चाहते हैं, तो आप छवियों का आकार और फिर उन्हें हैंडलर की प्रतिक्रिया के रूप में उपयोगकर्ता के लिए वापस भेजने के लिए कस्टम हैंडलर लिख सकते हैं।

    HTTP हैंडलर के पास अनुरोध करने वाले उपयोगकर्ता की पहचान (यदि ज्ञात), एप्लिकेशन स्थिति और सत्र जानकारी सहित एप्लिकेशन संदर्भ तक पहुंच है। जब एक HTTP हैंडलर से अनुरोध किया जाता है, तो एएसपी.NET उपयुक्त हैंडलर पर ProcessRequest विधि को कॉल करता है। हैंडलर की ProcessRequest विधि एक प्रतिक्रिया बनाता है, जिसे अनुरोधकर्ता ब्राउज़र पर वापस भेजा जाता है। किसी भी पृष्ठ अनुरोध के साथ, प्रतिक्रिया किसी भी HTTP मॉड्यूल के माध्यम से होती है जो हैंडलर चलाने के बाद होने वाली घटनाओं की सदस्यता लेती है।