【ASP.NET Core Web】MainでKestrelの設定をする
2024-1-16 | ASP.NET Core Web, C#
.NET 7のASP.NET Core WebアプリのプロジェクトでProgram.cs
のメソッドMain
の中でKestrelの設定したい!
概要
今回の記事では、.NET 7のASP.NET Core WebアプリのプロジェクトでProgram.cs
のメソッドMain
の中でKestrelの設定をする手順を掲載する。
仕様書
環境
- .NET 7.0
手順書
.NET 7で新しくプロジェクトを作るとStartup.cs
は作られなくなったり、クラスの構成が変わったり、Program.cs
のMain
メソッドにサーバーの起動時の設定を書くように変わったみたい。
UseKestrel
を使って、Kestrelの設定するやり方の違いを旧新で比較してみる。
まずは従来の例。
public class Program
{
...
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseKestrel(options =>
{
options.Listen(IPAddress.Loopback, 5002);
});
//webBuilder.UseUrls("http://127.0.0.1:5002");
webBuilder.UseStartup<Startup>();
});
}
次に新しい例。
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.ConfigureKestrel(kestrelServerOptions =>
{
kestrelServerOptions.Listen(IPAddress.Loopback, 5001);
});
// UseUrlsもこんな感じでアクセスできる
//builder.WebHost.UseUrls("http://127.0.0.1:5001");
...
app.Run();
}
}
builder.WebHost
からConfigureKestrel
を呼び出せる。
まとめ(感想文)
Main
の中で設定関連の処理をまとめてできると設定の順序が明確になって良いかもしれないと思う今日この頃。