Kestrelサーバーで使用されるデフォルトの構成ファイルはhosting.json
です。名前は、異なるベータバージョンで複数回変更されました。project.json
次の"command"
セクションで今使用する場合
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
}
次に、コマンドラインからサーバーを起動するときに
dnx web
ファイルhosting.json
が読み込まれます。ファイル
{
"server.urls": "http://0.0.0.0:5000"
}
すべてのIP4アドレスで5000をリッスンするようにサーバーを構成します。構成
{
"server.urls": "http://::5000;http://0.0.0.0:5000"
}
IP4アドレスとIP6アドレスの両方で5000をリッスンするように通知します。
使用ASPNET_ENV
環境変数または--config myconfig1.json
(またはconfig=myconfig1.json
)の使用によって、代替構成ファイルを指定できます。たとえば、
SET ASPNET_ENV=Development
hosting.Development.json
特定の構成でファイルを作成します。またはproject.json
、
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
"webProd": "Microsoft.AspNet.Server.Kestrel --config prod.json"
}
使用法によってサーバーを起動します
dnx webProd
さらに、追加のリッスンと登録(開始dnx web
)を許可する必要がある可能性があることを思い出してください。ファイアウォールと新しいTCP / HTTPポートをリッスンするローカルセキュリティのために必要です。以下のようなものは、すべての人(IPv4およびIPv6)の5000ポートのローカル登録とリスニングを行う必要があります。
netsh http add iplisten ipaddress=0.0.0.0:5000
netsh http add iplisten ipaddress=::5000
netsh http add urlacl url=http://+:5000/ user=\Everyone
より安全にするために、上記の構成を調整して最小限の権限を付与することができます。
更新: @BlaneBundersonに感謝します。一つは* IPアドレスの代わりに(のような使用することができますhttp://*:5000
リッスンするように)任意の任意のインターフェイスからIP4とIP6アドレス。注意して、これらを使用しないでください
http://*:5000;http://::5000
http://::5000;http://*:5000
http://*:5000;http://0.0.0.0:5000
http://*:5000;http://0.0.0.0:5000
IP6アドレス::
またはIP4アドレスを0.0.0.0
2回登録する必要があるためです。
発表に対応
技術的には、「localhost」または有効なIPv4またはIPv6アドレスではないホスト名があると、Kestrelはすべてのネットワークインターフェイスにバインドされます。
将来的には行動が変わる可能性があると思います。したがって、私は使用することをお勧めします*:5000
、0.0.0.0:5000
と::5000
あらゆるITアドレスを登録するための形成します。
更新2: ASP.NET Core RC2は、デフォルトをロードする動作を変更します(発表を参照)。Main
から設定をロードするhosting.json
ためにとコマンドラインパラメータを変更する必要があります。以下は使用例です
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("hosting.json", optional: true)
.AddEnvironmentVariables(prefix: "ASPNETCORE_")
.AddCommandLine(args)
.Build();
var host = new WebHostBuilder()
.UseUrls("http://*:1000", "https://*:1234", "http://0.0.0.0:5000")
.UseEnvironment("Development")
.UseConfiguration(config)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
上記のコード使用する3つのバインディングは:"http://*:1000"
、"https://*:1234"
、"http://0.0.0.0:5000"
代わりにデフォルトで使用するデフォルトのポート5000のデフォルトで(正確に使用されるようにhttp://localhost:5000
)。の呼び出し.UseConfiguration(config)
が行われます後にれ .UseUrls
ます。したがって、hosting.json
またはコマンドラインからロードされた構成はデフォルトオプションを上書きします。1.SetBasePath(Directory.GetCurrentDirectory())
行を削除hosting.json
すると、アプリケーションdllがコンパイルされるのと同じディレクトリからロードされます(たとえばbin\Debug\netcoreapp1.0
)。
次のような実行を使用できます
dotnet.exe run --server.urls=http:
デフォルト設定(からUseUrls
)と、存在する場合の"server.urls"
プロパティからの設定を上書きしますhosting.json
。
同様に、環境変数を設定することでULR設定を上書きできます。
set ASPNETCORE_SERVER.URLS=http:
次に、を使用したアプリケーションのデフォルトの起動 dotnet.exe run
するhttp://localhost:12541/
バインディングに使用されます。
発見できる HTTPSバインディングの使用例をここで。
備考:環境変数の名前から変更されたASPNETCORE_SERVER.URLS
とASPNETCORE_URLS
ASP.NETのそれ以降のバージョンで(参照ここではASP.NETコア3.1のマニュアルを参照して)。