HttpContext.Current.Request.Url.Host
とHttpContext.Current.Request.ApplicationPath
を一度に呼び出す方法はありますか?Request.Url.HostとApplicationPathを1回の呼び出しで
"full application url"のようなものはありますか?
EDIT: - :私は好奇心から、単純に尋ねる
http://[www.mysite.com/mywebapp]/Pages/Default.aspx
明確化私は必要なものは、これは[]内の部分です。
EDIT 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が必要です。ホストにはポートがありません。残念ながら、クライアントが接続に使用したサーバのdns:portが含まれているはずなので、あなたの最善の策はRequest.Headers ["HOST"]にあるものを使うことです。 HTTP/1.0リクエストが心配ならば、もちろんRequest.Url.Hostにフォールバックすることができます。 "HOST"ヘッダーのポートではなく、サーバーソフトウェアがバインドされているポートを返すためにRequest.Url.Authorityを個人的に経験しました。これはクライアントが接続に使用したものです。 (FWIW、それはSSRS 2012のReport Manager Webサイトにありました) – Granger