2013-07-13 13 views
5

उत्पन्न करते समय UrlHelper रेफरर होस्ट का उपयोग नहीं करता है। मैं एक एमवीसी वेब एपीआई एप्लीकेशन विकसित कर रहा हूं जिसे मुझे कई अलग-अलग उपकरणों पर वेब ब्राउज़र से एक्सेस करने की आवश्यकता है, उदाहरण के लिए, स्मार्ट फ़ोन। विकास के दौरान मैं अपने फोन से साइट तक पहुंचने पर डीबग करने में सक्षम होना चाहता हूं। ऐसा करने के लिए, मैंने एक रिवर्स प्रॉक्सी प्रदान करने के लिए फिडलर स्थापित किया है। स्थानीय रूप से, सर्वर लोकहोस्ट पर चल रहा है: 55 9 50, लेकिन मेरे फोन से मैं साइट को माइकंप्यूटर के रूप में एक्सेस कर सकता हूं: 8888। यह हिस्सा काम कर रहा है।यूआरआई

मुद्दा यह है कि मैं अपने आरईएसटी प्रतिक्रियाओं में यूआरआई बना रहा हूं। जब मैं MyComputer: 8888 पर साइट तक पहुंचता हूं, तो मुझे यूआरआई को माइक्रॉम्प्यूटर की तरह कुछ होना चाहिए: 8888/सेवाएं/एपीआई/फाइलें, लेकिन इसके बजाय मुझे लोकलहोस्ट मिलता है: 55 9 50/सेवाएं/एपीआई/फाइलें, जो मेरे फोन पर विफल होती हैं। मैं यूआरआई उत्पन्न करने के लिए UrlHelper कक्षा का उपयोग कर रहा हूँ। मैंने पूरी तरह से देखा है, लेकिन स्थानीय मेजबान नहीं, बल्कि रेफरर का उपयोग करने के लिए सिस्टम को बताने का कोई तरीका नहीं मिला है। मुझे अनुरोध में वांछित रेफरर मान दिखाई देता है, इसलिए मुझे लगता है कि मैं यूआरआई को पैच करने के लिए कोड लिख सकता हूं, लेकिन ऐसा लगता है कि यह एक आम मुद्दा होगा और UrlHelper को सही तरीके से काम करने का एक तरीका होना चाहिए।

अगर कोई मुझे सही दिशा में इंगित कर सकता है तो मैं इसकी बहुत सराहना करता हूं।

उत्तर

1

this SO answer देखें।

var httpContext = HttpContext.Current; 

if (httpContext == null) { 
    var request = new HttpRequest("/", "http://example.com", ""); 
    var response = new HttpResponse(new StringWriter()); 
    httpContext = new HttpContext(request, response); 
} 

var httpContextBase = new HttpContextWrapper(httpContext); 
var routeData = new RouteData(); 
var requestContext = new RequestContext(httpContextBase, routeData); 

return new UrlHelper(requestContext); 
संबंधित मुद्दे