ASP.NET MVC で アプリケーション ルート URL の 取得

0 件のコメント

アプリケーションルートURL(ベースURL?基本URL?…どういう呼び方が正しいかよく分かりません。。) は IIS へホストされた状況によって変化します。 そのような状況でも確実に ルートURL を取得する方法です。

サンプルコード

var scheme = httpContext.Request.Url.Scheme;
var authority = httpContext.Request.Url.Authority;
var path = HttpRuntime.AppDomainAppVirtualPath;

// ルートURL の生成
var baseUrl = string.Format("{0}://{1}{2}", scheme, authority, path);

説明

Request.Url.Scheme では、http または https を取得します。
Request.Url.Authority では、ホスト名 または IPアドレス と ポート番号 の組み合わせを取得します。
HttpRuntime.AppDomainAppVirtualPath では、現在のアプリケーション ドメインでホストされる、アプリケーションを格納するディレクトリの仮想パスを取得します。 AppDomainAppVirtualPath は static プロパティ なので、HttpRuntimeクラス から 直接取得します。

※上記サンプルコード中の httpContext に対して何もありませんが、現在実行中の HttpContextBase を指定します。

今回、参考にしたサイトは以下の通りです。