ASP.NET CoreのデフォルトテンプレートではProgram.cs
に以下のコードが記述されています。
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });
このCreateDefaultBuilder
って何を設定してくれてるんだろ?と調べた結果です。
Set up a host
全部Microsoft Docsに書いてありました
以下まとめ。
アプリケーションのホスティング設定プロバイダを使用してKestrelサーバーをWebサーバーとして設定します。Kestrelサーバーの既定のオプションについては、 「ASP.NET CoreでのKestrel Webサーバーの実装」 を参照。
コンテンツルートを
GetCurrentDirectory
が返すパスに設定します。
※.UseContentRoot()
による設定以下の値を
ConfigureHostConfiguration
でロードする以下の値を
ConfigureAppConfiguration
でロードするConfigureLogging
にConsole
とDebug
出力設定を追加します
※.AddConsole()
,.AddDebug()
設定にはappsettings.jsonとappsettings.{Environment}.jsonのLoggingセクションで指定されたLogging Filtering規則を使用します。ASP.NET Core ModuleをIISで動かす場合、
CreateDefaultBuilder
はIIS Integrationを有効にし、アプリケーションのベースアドレスとポートを設定します。
IIS Integrationは、起動エラーをキャプチャするようにアプリケーションを設定することもできます。IISの既定のオプションについては、 「Host ASP.NET Core on Windows with IIS」を参照してください。Development
モードが有効の場合、ServiceProviderOptions
をtrue
に設定します。詳細については、 「スコープの検証」 を参照してください。
だそうです。
おわり
ちょっとしたものならCreateDefaultBuilder
を指定するだけでも良さそうですね。Secret Manager
の設定までしてくれているのは意外でした。