तो तुम एक वर्ग है कि IHttpHandler
लागू करता है कहा जाता है: MyHandler
और यह नाम स्थान Example
में है, तो आप में निम्न प्रविष्टियों बनाने की जरूरत है साइट की httpHandlers खंड में Web.Config
:
<httpHandlers>
<add verb="*" path="*" type="Example.MyHandler"/>
</httpHandlers>
इस के बाद से किए गए सभी URL पुनर्निर्देश अपने हैंडलर को अपनी वेबसाइट/एप्लिकेशन के लिए आपको स्थिर सामग्री (आईएमजीएस, स्क्रिप्ट्स, स्टाइल शीट इत्यादि) की सेवा करने के तरीके पर विचार करना होगा। अपने स्थानीय देव वेबसर्वर (विजुअल स्टूडियो में एम्बेडेड) के लिए
<httpHandlers>
<add verb="*" path="*" type="Example.MyHandler"/>
<add verb="GET,HEAD" path="static/*" type="System.Web.StaticFileHandler" />
</httpHandlers>
यह सब है कि इसकी आवश्यकता हो: एक तरह से आप तो इस तरह के रूप में अपने संचालकों सेट कर सकते हैं http://example.com/static/...
की तरह किसी संगत URL में इस तरह के स्थैतिक सामग्री स्टोर करने के लिए है। आईआईएस के लिए, आपको इन यूआरएस से निपटने के लिए आईआईएस को बताने की भी आवश्यकता है (क्योंकि सर्वर पहले यह तय करने का अनुरोध करता है कि इसे कहां भेजना है - इसमें एएसपी.नेट या कुछ अन्य एक्सटेंशन को भेजना है या नहीं)।
- ओपन: आईआईएस प्रबंधक ->
- धारा: वेबसाइटें ->
- सही अपनी वेबसाइट पर क्लिक करें ->
- विकल्प: गुण ->
- टैब: होम Directoy ->
- बटन: [कॉन्फ़िगरेशन ...] ->
- टैब: मैपिंग्स ->
- अनुभाग: "वाइल्डकार्ड एप्लिकेशन मानचित्र (कार्यान्वयन का क्रम) : "->
- बटन: [सम्मिलित करें ...] ->
- निष्पादन: "C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll" (या जो भी .NET रनटाइम के संस्करण अपने हैंडलर का उपयोग करता है) ->
- सही का निशान हटाएँ "सत्यापित करें कि फ़ाइल मौजूद है "->
- बटन: [ठीक]
अब दोनों आईआईएस और ASP.NET पता है कि आपके यूआरएल के साथ सौदा करने के लिए कैसे।
ऊपर दृष्टिकोण का अर्थ है जब स्थिर फ़ाइलों का अनुरोध, ASP.NET वास्तव में फाइलें, नहीं आईआईएस में सेवारत है - जो कुछ कमियां (चर्चा की here) की ओर जाता है। आप इस व्यवहार को ओवरराइड कर सकते हैं (डायरेक्ट्री डायरेक्टरी से वाइल्डकार्ड मैपिंग अक्षम करें) निर्देशिका को किसी एप्लिकेशन (आईआईएस मैनेजर में) पर स्विच करके, वाइल्डकार्ड मैपिंग स्टेटमेंट (ऊपर जोड़ा गया) को हटाकर और उसे एप्लिकेशन से वापस स्विच कर सकते हैं। Voilà - आईएसआई द्वारा आपके एएसपी.NET को परेशान किए बिना स्थिर फाइलों को संभाला जाता है।
आप व्याख्या कर सकते हैं "मैं इसके लिए एक HTTP हैंडलर का उपयोग नहीं होता।" - मैं इसके बारे में एक लेख प्रकाशित किया? अब तक मुझे पता है कि HTTP हैंडलर सामान्य एएसपीएक्स पेज से बेहतर प्रदर्शन प्रदान करता है और मुझे HTTP हैंडलर तरीके से कोई नुकसान नहीं दिखता है। –
पेज रूटिंग अधिक सीधे आगे है और अधिक लचीलापन प्रदान करता है। यह आपके द्वारा वर्णित बिल्कुल सही के लिए डिज़ाइन किया गया था। HTTP हैंडलर के लिए तेज़ी से होना संभव है, लेकिन ऐसा इसलिए है क्योंकि एएसपी.नेट पृष्ठों के लिए समर्थन का हिस्सा भाग/लोड नहीं होता है। मैं बस एक कस्टम HTTP हैंडलर लागू करने के माध्यम से मिला है। यह बहुत अच्छा काम करता है। लेकिन मुझे नहीं लगता कि यह आपके द्वारा वर्णित अनुसार सही दृष्टिकोण है। –
आपके उत्तर के लिए धन्यवाद ... क्या आप "सीधे आगे और अधिक लचीलापन प्रदान करते हैं" के साथ आपका क्या मतलब बता सकते हैं? मैं HTTP हैंडलर दृष्टिकोण बहुत आसान और सीधे आगे देखता हूं। इसके अलावा, क्या आप यूआरएल रूटिंग समाधान की तरह दिखने के बारे में अधिक विशिष्ट हो सकते हैं? रुडू वास्तव में उनके जवाब में विस्तृत था। धन्यवाद फिर योनातन। –