क्या किसी कॉल में HttpContext.Current.Request.Url.Host
और HttpContext.Current.Request.ApplicationPath
प्राप्त करने का कोई तरीका है?Request.Url.Host और ApplicationPath एक कॉल में
कुछ "पूर्ण एप्लिकेशन यूआरएल" की तरह कुछ?
संपादित करें: -:
http://[www.mysite.com/mywebapp]/Pages/Default.aspx
मैं बस जिज्ञासा से बाहर पूछना स्पष्टीकरण मैं क्या जरूरत है [] के भीतर इस हिस्सा है।
संपादित करें 2: सभी उत्तरों के लिए धन्यवाद, लेकिन उनमें से कोई भी बिल्कुल वैसा ही नहीं था जिसे मैं ढूंढ रहा था। FYI करें, मैं इस समस्या इस तरह से हल (लेकिन अभी भी यह जानकर वहाँ एक चिकनी तरीका है में दिलचस्पी है):
public string GetWebAppRoot()
{
if(HttpContext.Current.Request.ApplicationPath == "/")
return "http://" + HttpContext.Current.Request.Url.Host;
else
return "http://" + HttpContext.Current.Request.Url.Host + HttpContext.Current.Request.ApplicationPath;
}
आप अनुरोध चाहते हैं Request.Url.Authority, सिद्धांत में; होस्ट में बंदरगाह नहीं है। दुर्भाग्यवश, आपका सर्वोत्तम शर्त अनुरोध है कि अनुरोध में है। हेडर ["HOST"], क्योंकि इसमें डीएनएस शामिल है: सर्वर का बंदरगाह जो क्लाइंट कनेक्ट करने के लिए उपयोग किया जाता है। यदि आप HTTP/1.0 अनुरोधों के बारे में चिंतित हैं, तो आप निश्चित रूप से Request.Url.Host पर वापस आ सकते हैं। मैंने व्यक्तिगत रूप से Request.Url.Arl. प्राधिकरण का अनुभव किया है जो सर्वर सॉफ़्टवेयर बाध्य है, "HOST" शीर्षलेख में बंदरगाह नहीं है --- जो क्लाइंट कनेक्ट करने के लिए उपयोग किया जाता है। (एफडब्ल्यूआईडब्ल्यू, यह एसएसआरएस 2012 की रिपोर्ट मैनेजर वेबसाइट में था।) – Granger