2017-05-10 11 views
6

पूरे इंटरनेट पर केवल जगह मैं एक स्पष्टीकरण मिल सकता है MSDN पर है:एप्लिकेशन रूट यूआरएल ओवरराइड वास्तव में क्या करता है?

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

here से मुझे समझ में आया कि "एप्लिकेशन रूट" वह पथ है जो ASP.NET में टिल्डे का उपयोग करते समय पुनर्प्राप्त होता है। तो मैं उम्मीद करता हूं कि यदि मैं प्रोजेक्ट के गुणों पर जाता हूं - वेब - "एप्लिकेशन रूट ओवरराइड करें" और एक और यूआरएल निर्दिष्ट करें तो टिल्ड उस यूआरएल पर मैप करेगा।

लेकिन ऐसा नहीं है। उदाहरण के लिए मेरा वेब वर्चुअल निर्देशिका पर है - http://localhost/WebApplication1 और "एप्लिकेशन रूट ओवरराइड करें" पर मैं http://localhost/WebApplication2 या http://localhost या http://WebApplication2 निर्दिष्ट करने का प्रयास करता हूं (जो सभी मेरे स्थानीय आईआईएस पर मौजूद हैं)। अब जब मैं

Response.Redirect("~/test2/login"); 

मुझे उम्मीद है कि यह मुझे http://localhost/WebApplication2/test2/login पर रीडायरेक्ट करेगी। लेकिन इसके बजाय यह मुझे http://localhost/WebApplication1/test2/login पर रीडायरेक्ट करता है जैसे कि मैंने "एप्लिकेशन रूट" को ओवरराइड नहीं किया है।

तो यह सुविधा वास्तव में क्या करने का अनुमान लगाती है? या शायद यह काम नहीं कर रहा है क्योंकि मुझे कुछ याद आ रहा है और इसे ठीक से परिभाषित नहीं किया है?

उत्तर

5

ओवरराइड एप्लिकेशन रूट यूआरएल नहीं बदलता है जहां एप्लिकेशन रूट आपके एप्लिकेशन के भीतर है। यह एप्लिकेशन रूट तक पहुंचने के लिए उपयोग किए गए यूआरएल को बदलता है। चूंकि आईआईएस कुछ होस्टनाम सत्यापन करता है, इसका उपयोग यह निर्दिष्ट करने के लिए किया जाता है कि क्या आप localhost:[PORT] के अलावा किसी अन्य माध्यम से अपने एप्लिकेशन तक पहुंचना चाहते हैं।

उदाहरण के लिए, यदि आप इसे www.myapp.com को ओवरराइड आप तो अपने मेजबान को यह जोड़कर अपने आवेदन तक पहुंच सकता है फ़ाइल:

127.0.0.1  www.myapp.com 

यह विशेष रूप से उपयोगी हो सकता है अगर आप अपने आवेदन एक दूरदराज के लिए उपलब्ध बना रहे हैं डिवाइस (आपके कंप्यूटर पर वर्चुअल मशीन, या आपके नेटवर्क पर एक मोबाइल डिवाइस) क्योंकि वे एप्लिकेशन पते के रूप में localhost पर नेविगेट करने में असमर्थ होंगे।

+0

अच्छा जवाब, मैं पूरी तरह से एक स्पष्टीकरण की तलाश में था और कहीं भी नहीं मिला! मुझे अभी भी समझ में नहीं आ रहा है कि इसकी आवश्यकता क्यों है, क्योंकि मैं केवल उस वेबसाइट पर आईआईएस पर बाध्यकारी जोड़ सकता हूं और "होस्ट नाम" 'www.myapp.com' में परिभाषित कर सकता हूं - ऐसा लगता है कि यह सटीक प्रभाव प्राप्त करेगा ? – BornToCode

+3

यदि आप स्थानीय विकास के लिए IISExpress का उपयोग कर रहे हैं तो ऐसी कोई GUI नहीं है जिसे मैं इस तरह की चीजों को कॉन्फ़िगर करने के लिए देख सकता हूं। जहां तक ​​मैं कह सकता हूं, आप बिल्ड कॉन्फ़िगरेशन में उस विकल्प का उपयोग कर सकते हैं या मैन्युअल रूप से IISExpress कॉन्फ़िगरेशन फ़ाइलों को संपादित कर सकते हैं। – IronSean

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