2017-07-20 5 views
11

ASP Dotnet Core 2プレビュー1/2のリスンポートを正しく設定する方法は、appsettings.jsonにKestrelセクションを作成することです次のフォーマットは:appsettings.jsonを使用してKestrelのリッスンポートを設定するDotnetコア2プレビュー2

"Kestrel": { 
    "EndPoints": { //Could also be Endpoints, it's a bit unclear 
     "Http": { 
     "Address": "127.0.0.1", 
    "Port": 9001 //the port you want Kestrel to run on 
}, 

私はDebianのマシン上でサンプルWebアプリケーションをセットアップしようとしましたが、私はアプリを起動したとき、それはアプリがポート5000に上場されていることを書き出す、デフォルトのポート..

ロギングレベルをTraceに変更すると、起動時に、エンドポイントが見つからず、aが見つからないなど、appsettings.jsonが読み取られることがわかりました。 ppは標準5000ポートを使用します。

私はGithubのaspnetソースコードを検索しようとしましたが、Kestrelセクションが設定(https://github.com/aspnet/Identity/blob/e38759b8a2de1b7a4a1c19462e40214b43c1cf3b/samples/IdentityOIDCWebApplicationSample/MetaPackage/KestrelServerOptionsSetup.cs)から読み込まれる領域を見つけることができますが、サンプルプロジェクトのように見えます。

私は何が分かりませんが、これはASP Dotnetコア2でKestrelを設定する標準的な方法ではありませんか?

答えて

3

ケストレル構成のサポートappsettings.jsonビアは2.0で削除されました。

this問題のコメントを参照してください:

チョウゲンボウ、configファイルのサポートは2.0.0から切断しました。設定値は、初期化コードで手動で読み込む必要があります。この問題を回避するには

、あなたはProgram.csの中でこのような何かを行うことができます。

public static IWebHost BuildWebHost(string[] args) => 
WebHost.CreateDefaultBuilder(args) 
.UseStartup <Startup>() 
.UseKestrel(options => { 
    var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); 
    if (env == "DEVELOPMENT") { 
    options.Listen(IPAddress.Loopback, 9001); 
    options.Listen(IPAddress.Loopback, 9002, listenOptions => { 
    listenOptions.UseHttps("certificate.pfx", "password"); 
    }); 
    } 

}) 
.Build(); 
0

私は、Program.csとhosting.jsonファイルを使用してKestrelを設定しています。例:

var config = new ConfigurationBuilder() 
       .SetBasePath(Directory.GetCurrentDirectory()) 
       .AddJsonFile("hosting.json", optional: true, reloadOnChange: true) 
       .Build(); 

var host = new WebHostBuilder() 
       .UseConfiguration(config) 
       .UseKestrel() 
       .UseContentRoot(Directory.GetCurrentDirectory()) 
       .UseStartup<Startup>(); 

hosting.json:

{ 
    "urls": "http://localhost:4444;http://localhost:4445;" 
} 

これは、最新バージョンのDOTNETコアのexapmleです。以前のバージョンの : hosting.json:

{ 
    "server.urls": "http://localhost:4444;http://localhost:4445;" 
} 
+0

私はコア1.1でケストレルを設定している、そしてそれは、このようにそれを行うことは可能私です。この彼と同様の方法私は、appsettings.jsonのKestrelセクションを使用することで、将来のやり方をすべきであるという複数の場所を読んだことがあります。 https://codingblast.com/asp-net-core-2-preview/ –

+0

また、このビデオでデモートされています。https://youtu.be/h9hlN0DOKRM –

+0

私はそのビデオを見ました。私は同じ方法を使って自分自身を試してきましたが、私はそれを働かせることはできません。誰もがこれに運がありますか? – sshirley

関連する問題