asp.net-web-api - माइक्रोसॉफ्ट वेब एपीआई:आप सर्वर कैसे करते हैं। मैपपाथ?





(5)


होस्टिंग एंटरप्राइज़ कॉल का उपयोग करने पर टेस्ट लेवल चलाने का एक अच्छा तरीका यह है कि यूएनसी शेयर कहने पर परीक्षण स्तर चलाने के लिए एक अच्छा तरीका है: \ example \ जिसे मैप किया गया है ~ / example / आप इसे पाने के लिए इसे निष्पादित कर सकते हैं आईआईएस एक्सप्रेस मुद्दे:

#if DEBUG
    var fs = new FileStream(@"\\example\file",FileMode.Open, FileAccess.Read);
#else
    var fs = new FileStream(HostingEnvironment.MapPath("~/example/file"), FileMode.Open, FileAccess.Read);
#endif

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

चूंकि माइक्रोसॉफ्ट वेब एपीआई एमवीसी नहीं है, इसलिए आप ऐसा कुछ नहीं कर सकते हैं:

var a = Request.MapPath("~");

न ही यह

var b = Server.MapPath("~");

क्योंकि ये System.Web अंतर्गत हैं। वेब नेमस्पेस, System.Web.Http नहीं। System.Web.Http नेमस्पेस।

तो आप वेब एपीआई में सापेक्ष सर्वर पथ कैसे समझते हैं ?
मैं एमवीसी में ऐसा कुछ करता था:

var myFile = Request.MapPath("~/Content/pics/" + filename);

जो मुझे डिस्क पर पूर्ण पथ देगा:

"C:\inetpub\wwwroot\myWebFolder\Content\pics\mypic.jpg"



आप किसी भी संदर्भ में HostingEnvironment.MapPath का उपयोग कर सकते हैं जहां System.Web ऑब्जेक्ट्स जैसे HttpContext.Current उपलब्ध नहीं हैं (उदाहरण के लिए एक स्थिर विधि से भी)।

var mappedPath = System.Web.Hosting.HostingEnvironment.MapPath("~/SomePath");

यह भी देखें सर्वर.मैपपाथ और होस्टिंगइन्वायरमेंट। मैपपाथ के बीच क्या अंतर है?




string root = HttpContext.Current.Server.MapPath("~/App_Data");



मैं आपके द्वारा प्रदान किए जाने वाले संदर्भ से नहीं बता सकता, लेकिन अगर ऐसा कुछ है तो आपको ऐप स्टार्टअप पर बस करने की ज़रूरत है, फिर भी आप WebApiHttpApplication में Server.MapPath का उपयोग कर सकते हैं; उदाहरण के लिए Application_Start()

मैं सिर्फ आपके सीधा सवाल का जवाब दे रहा हूं; पहले से उल्लिखित HostingEnvironment.MapPath() शायद पसंदीदा समाधान है।




चूंकि सवाल क्रोम-विशिष्ट है, इसलिए आप पोस्टमैन एक्सटेंशन प्राप्त कर सकते हैं जो आपको अनुरोध सामग्री प्रकार सेट करने की अनुमति देता है।







asp.net-web-api