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


Answers

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

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

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"



होस्टिंग एंटरप्राइज़ कॉल का उपयोग करने पर टेस्ट लेवल चलाने का एक अच्छा तरीका यह है कि यूएनसी शेयर कहने पर परीक्षण स्तर चलाने के लिए एक अच्छा तरीका है: \ 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

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




Related