あなたはURLをホストし、正しいです外部情報であり、アプリケーションに設定パラメータとして渡すことができます。
IWebHostBuilderインターフェイスを使用して、リクエストなしで、設定されたリスニングアドレス(http://+:5000
など)を取得できます。それはGetSetting
メソッドを介してホスト設定へのアクセスを提供します。
/// <summary>
/// Get the setting value from the configuration.
/// </summary>
/// <param name="key">The key of the setting to look up.</param>
/// <returns>The value the setting currently contains.</returns>
string GetSetting(string key);
アドレスを聞いて設定することができますWebHostDefaults.ServerUrlsKey設定名は、あります。
public static IWebHostBuilder UseUrls(this IWebHostBuilder hostBuilder, params string[] urls);
かthe documentationで説明したように(デフォルトのリスニングがlocalhost:5000
に設定されていることで、あなたが知っている)urls
設定パラメータを定義します。.UseUrls
拡張メソッドを追加するときに我々はそれを上書きします。
IWebHostBuilder
のインスタンスを持つので、.GetSetting(WebHostDefaults.ServerUrlsKey)
を呼び出して現在の値を取得できます。
出典
2016-10-05 06:55:39
Set
とAspNetCoreにして注入することができるサービスがあることだけで簡単なメモを思い付きます現在のリクエストからベースURLを取得するすべてのクラス(リクエストに直接アクセスできるコントローラにない場合) 'IHttpContextAccessor contextAccessor'を注入し、次に ' var url = $ "{contextAccessor.HttpContext.Request.Scheme}を構築するだけです:// {contextAccessor.HttpContext.Request.Host.ToUriComponent()}"; ' しかし、 https://github.com/aspnet/Hosting/issues/793で明示的にDIに登録する必要があるようです: 'services.AddSingleton(); ' –
iberodev