2009-02-21 36 views
6

मैंने एक वेब ऐप बनाया है जहां मैं एक मॉड्यूल का उपयोग कर रहा हूं जो "www" urls (http://example.com/) के बिना "www" urls (http://www.example.com/) के साथ रीडायरेक्ट करता है। लेकिन जैसा कि मैं साझा होस्टिंग सर्वर पर हूं, जहां मुझे HttpModule को लागू करने की अनुमति नहीं है, तो मैंने Global.asax फ़ाइल के साथ एक ही मॉड्यूल कोड की कोशिश की। यह काम करता है!HttpModule और Global.aspx के बीच प्रदर्शन अंतर क्या है?

मैंने अपनी HttpModule कार्यक्षमता को लागू करने के लिए निम्न (Application_BeginRequest()) ईवेंट का उपयोग किया।

void Application_BeginRequest() 
{ 
    //module code 
} 

मॉड्यूल और एप्लिकेशन Global.asax फ़ाइल से अच्छी तरह से और सही तरीके से काम कर रहा है लेकिन मैं प्रदर्शन के बारे में चिंतित हूं।

हम asp.net में HTTPModules का उपयोग क्यों करते हैं यदि हम Global.asax फ़ाइल का उपयोग करके इसे कार्यान्वित कर सकते हैं। क्या दोनों के बीच कोई प्रदर्शन अंतर है। या HttpModule के बजाय Global.asax फ़ाइल का उपयोग करते समय मुझे किस बारे में चिंता करने की ज़रूरत है ??

कृपया समझाएं!

उत्तर

4

ग्लोबल.एक्सएक्स HTTP अनुप्रयोग से विरासत में आता है, और HTTPModules को IHTTPInterface को लागू करना होगा।
HTTPModules Init विधि HTTPAplication ऑब्जेक्ट को पास कर देता है।
इनिट विधि में आप HTTP अनुप्रयोग की घटनाओं में हुक कर सकते हैं।

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

+0

मैं ग्लोबल.एक्सएक्स पर HTTPModules भी पसंद करता हूं लेकिन जब मैं HttpModule को कार्यान्वित करने की कोशिश कर रहा हूं तो मेरे साझा होस्टिंग सर्वर पर यह मुझे "500 अतिरिक्त सर्वर त्रुटि" देता है। यही कारण है कि मैं ग्लोबल.एएसएक्स – Prashant

+0

के साथ जा रहा हूं एक और बात, मुझे नहीं मिल रहा है "विशेष रूप से यदि आप सिकुड़-लपेटा हुआ सॉफ़्टवेयर बनाते हैं जहां ग्राहक अपने ग्लोबल.एक्सएक्स को अपने आप से बदल सकता है।" आपके उत्तरों की यह पंक्ति? "सिकुंक-लिपटे सॉफ़्टवेयर" क्या है और ग्राहक वैश्विक.एएसएक्स फ़ाइल को कैसे बदल सकता है? – Prashant

+0

रन टाइम पर, ग्लोबल.एक्सएक्स को एचटीपीएप्लिकेशंस बेस क्लास से प्राप्त गतिशील रूप से जेनरेट की गई .NET Framework क्लास में पार्स किया गया है और संकलित किया गया है। आप एक सॉफ्टवेयर पैकेज (संकुचित-स्वरुप) बेचते हैं, तो ग्राहक Global.asax –

2

इसमें कोई फर्क नहीं पड़ता है। HTTPModules का बिंदु स्पष्टता और पृथक्करण के लिए है। अक्सर लोग कई HTTPModules के माध्यम से अनुरोध पाइप करेंगे, जो कुछ है जो आप global.asax के साथ नहीं प्राप्त कर सकते हैं।

+1

ठीक है, इसका मतलब है कि प्रदर्शन के संबंध में दोनों विधियों में कोई अंतर नहीं है। कैज़ जो मेरे लिए मायने रखता है :) – Prashant

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