私はASP.NET Core 1 RTM Webアプリケーションを使用しています。Kestrelセットアップを最新の規約に更新しています。セットアップは、最低から最高の優先度に、server.urls
に次のソースを持つことを目指し:Program.Main()
コード(デフォルト、生産用など)に設定されたKestrelセットアップでJson設定ソースが無視される
- のURL(開発中のデフォルトを上書きするなど)
hosting.Development.json
に設定 - のURL を環境変数に設定
- のURL(例えばステージングや他の生産ENVのデフォルトを上書きする。)最新の参照(例えばhere on SOとhere on Github)を1として
、これはワットであります
ProjDir\Program.cs
:
public class Program
{
// Entry point for the application
public static void Main(string[] args)
{
const string hostingDevFilepath = "hosting.Development.json";
const string environmentVariablesPrefix = "ASPNETCORE_";
string currentPath = Directory.GetCurrentDirectory();
var hostingConfig = new ConfigurationBuilder()
.SetBasePath(currentPath)
.AddJsonFile(hostingDevFilepath, optional: true)
.AddEnvironmentVariables(environmentVariablesPrefix)
.Build();
System.Console.WriteLine("From hostingConfig: " +
hostingConfig.GetSection("server.urls").Value);
var host = new WebHostBuilder()
.UseUrls("https://0.0.0.0")
.UseConfiguration(hostingConfig)
.UseKestrel()
.UseContentRoot(currentPath)
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
ProjDir\hosting.Development.json
:帽子、私が今持って、コマンドラインから
{
"server.urls": "http://localhost:51254"
}
をASPNETCORE_ENVIRONMENT=Development
を設定した、これが出力されます。
> dotnet run
Project Root (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
From hostingConfig: http://localhost:51254
info: AspNet.Security.OpenIdConnect.Server.OpenIdConnectServerMiddleware[0]
An existing key was automatically added to the signing credentials list: <<yadda yadda yadda>>
Hosting environment: Development
Content root path: <<my project root dir>>
Now listening on: https://0.0.0.0:443
Application started. Press Ctrl+C to shut down.
マイ期待するd出力はNow listening on: http://localhost:51254
になります。 URL値はJSONソース(コンソールログごとに)から正しく選択されますが、UseConfiguration
が、UseUrls
になってもKestrelの設定で無視されます。
私には何が欠けていますか?あなたの提案をありがとう。
'server.urls'ではなく' urls'を名前として使用するとどうなりますか? (https://github.com/aspnet/Hosting/blob/e7b8c3f90a781a55658b4245571c5bf5dac5e56e/src/Microsoft.AspNetCore.Hosting.Abstractions/WebHostDefaults.cs#L15) – Pawel
私は 'UseUrls()'とJsonのソースに 'urls'を設定してください。 Jsonソースからの設定が正しく選択されています! 2つの質問?Q1:これはどこかでまだ文書化されていますか(コードを見れば別に:) Q2: 'UseUrls'がなくても' server.urls'でも動作しますか? Tnx – superjos
私はそれが構成されている場合、自動的にピックアップされていると思います。 'UseUrls'では、プログラムでURLを設定できます。 – Pawel