私はasp.net mvcアプリケーションを持っています。私はコントローラ内でベースURIを取得するために次のコードを使用していました。アプリケーションの開始時にサイトのベースURLを取得するにはどうすればよいですか?
var baseApplicationUrl = string.Format("{0}://{1}", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Authority);
これは問題なく機能していました。
Application_Start()にbaseuriを作成する方法はありますか?アプリケーションの起動方法HttpContext.Current.Request
で
が例外をスローします
アップデート1
私はいくつかのリンクを保持しているUISettings
クラスを持っています。これらのリンクのベースURIは、アプリケーションのホスト方法によって異なります。たとえば、http://www.example.com/home/index
またはhttps://www.example.com/home/index
またはhttp://www.example.com/subdomain/home/index
とすることができます。だからhome/index
には異なるベースURIがどのようにホストされているかによって異なります。
申し訳ありませんが、申請開始時にリクエストが利用できないことを理解しています。しかし、アプリケーション開始時にUISettingsをロードしたいので、DIフレームワークでシングルトンインスタンスとして登録することができます。
public class UISettings
{
public string Link1 {get;set;}
public string Link2 {get;set;}
public static UiSettings Load()
{
// need to get baseURI here???
var settings = new UISettings();
settings.Link1 = baseURI + "/home/index";
return settings;
}
}
とアプリケーションのシングルトンはそう始める私は私はあなたがここで達成しようとしているのかわからないんだけど
container.RegisterInstance<UISettings>(UiSettings.Load());
http://mvolo.com/iis7-integrated-mode-request-is-not-available-in-this-context-exception-in-applicationstart/を参照してください。 – RandomUs1r