現在.net Core 2.0ランタイムで実行するASP.net Core 2.0アプリを作成しています。どちらも現在プレビューバージョンです。ただし、Kestrelでデフォルトのhttp://localhost:5000
リスンURL以外を使用する方法を理解できません。
Googleができるほとんどのドキュメントでは、1.0プレビューでもurls
に変更されているように見えるserver.urls
設定について説明していますが、どちらも機能しません(デバッグロギングをオンにすると、Kestrelから、リッスンエンドポイントは設定されていません)。
多くのドキュメントではhosting.json
についても触れており、デフォルトのappsettings.jsonを使用できません。ただし、推奨される新しい構成のロード方法を比較すると、appsettings.jsonをロードすることを除いて、これは新しい WebHost.CreateDefaultBuilder
メソッドの動作とほとんど同じです。
現在、appsettings.jsonとIConfigureOptions<T>
がどのように関連付けられているかを理解できていません。そのため、私の問題は、何を理解していないことが原因である可能性があります KestrelServerOptionsSetup
実際に。
私はそれでこれを動かしました
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseConfiguration(new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("hosting.json", optional: true)
.Build()
)
.UseStartup<Startup>()
.Build();
そして、hosting.json
{ "urls": "http://*:5005;" }
以前のように機能する
WebHost.CreateDefaultBuilder(args)
.UseConfiguration( new ConfigurationBuilder().AddCommandLine(args).Build() )
.UseStartup<Startup>()
.Build();
その後
dotnet myapp.dll --urls "http://*:5060;"
Appsettings.jsonでリッスンURLを設定するには、「Kestrel」セクションを追加します。
"Kestrel": {
"EndPoints": {
"Http": {
"Url": "http://localhost:5000"
}
}
}
リファレンス: https://docs.Microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2
上記のどれも私にとってはうまくいきませんでした。これは私のために働きました:
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel(options =>
{
options.Listen(System.Net.IPAddress.Loopback, 44306, listenOptions =>
{
listenOptions.UseHttps("mysertificate.pfx", "thecertificatePassword");
});
})
.Build();
(44306を任意のポートに変更します)
そして、これには多くの助けがあるかもしれません StackOverflow答え