Tek bir aramada HttpContext.Current.Request.Url.Host
ve HttpContext.Current.Request.ApplicationPath
almak için herhangi bir yolu var mı?Request.Url.Host ve ApplicationPath
"Tam uygulama URL'si" gibi bir şey?
DÜZENLEME: -:
http://[www.mysite.com/mywebapp]/Pages/Default.aspx
Sadece meraktan sormak Açıklama ihtiyacım olanı [] içinde parçasıdır.
DÜZEN 2: Tüm yanıtlar için teşekkürler, ancak bunların hiçbiri tam olarak aradığım şey değildi. Bilginize, ben bu şekilde sorunu çözmüş (ama daha pürüzsüz bir yol varsa bilerek hala ilgileniyorum):
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'yi teoride istersiniz; Ana bilgisayarın bağlantı noktası yok. Ne yazık ki, en iyi bahsiniz, istemcinin bağlandığı sunucunun dns: portunu içermesi gerektiği için Request.Headers ["HOST"] öğesinde bulunanları kullanmaktır. HTTP/1.0 isteklerinden endişe ediyorsanız, elbette Request.Url.Host'a geri dönebilirsiniz. İstemcinin bağlandığı "HOST" başlığındaki bağlantı noktası değil, sunucu yazılımının bağlı olduğu bağlantı noktasına dönmek için Request.Url.Authority'yi şahsen deneyimledim. (FWIW, SSRS 2012'nin Rapor Yöneticisi web sitesinde idi.) – Granger