アプリケーションルート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 を指定します。
今回、参考にしたサイトは以下の通りです。
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!