在 .NET 6 启动中配置 Kestrel 服务器选项
Configuring Kestrel Server Options in .NET 6 Startup
我正在将 WebApi 从 .net5 迁移到 .net6。进展顺利,但 运行 遇到了如何在启动期间配置 Kestrel 的问题。以下代码来自 Program.cs 文件的 Main 方法:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddVariousStuff();
builder.Host
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(serverOptions =>
{
serverOptions.Limits.MaxConcurrentConnections = 100;
serverOptions.Limits.MaxConcurrentUpgradedConnections = 100;
serverOptions.Limits.MaxRequestBodySize = 52428800;
});
});
var app = builder.Build();
app.UseStuffEtc();
app.Run();
应用程序启动崩溃,出现以下异常:
System.NotSupportedException: ConfigureWebHost() is not supported by WebApplicationBuilder.Host. Use the WebApplication returned by WebApplicationBuilder.Build() instead.
如果我删除与 ConfigureWebHostDefaults 相关的任何内容,则应用程序启动没有问题。我无法弄清楚如何使用新的 .net6 Kestrel 服务器启动配置。
迁移指南的 code examples 涵盖了这一点。您应该在构建器的 WebHost
:
上使用 UseKestrel
builder.WebHost.UseKestrel(so =>
{
so.Limits.MaxConcurrentConnections = 100;
so.Limits.MaxConcurrentUpgradedConnections = 100;
so.Limits.MaxRequestBodySize = 52428800;
});
我正在将 WebApi 从 .net5 迁移到 .net6。进展顺利,但 运行 遇到了如何在启动期间配置 Kestrel 的问题。以下代码来自 Program.cs 文件的 Main 方法:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddVariousStuff();
builder.Host
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(serverOptions =>
{
serverOptions.Limits.MaxConcurrentConnections = 100;
serverOptions.Limits.MaxConcurrentUpgradedConnections = 100;
serverOptions.Limits.MaxRequestBodySize = 52428800;
});
});
var app = builder.Build();
app.UseStuffEtc();
app.Run();
应用程序启动崩溃,出现以下异常:
System.NotSupportedException: ConfigureWebHost() is not supported by WebApplicationBuilder.Host. Use the WebApplication returned by WebApplicationBuilder.Build() instead.
如果我删除与 ConfigureWebHostDefaults 相关的任何内容,则应用程序启动没有问题。我无法弄清楚如何使用新的 .net6 Kestrel 服务器启动配置。
迁移指南的 code examples 涵盖了这一点。您应该在构建器的 WebHost
:
UseKestrel
builder.WebHost.UseKestrel(so =>
{
so.Limits.MaxConcurrentConnections = 100;
so.Limits.MaxConcurrentUpgradedConnections = 100;
so.Limits.MaxRequestBodySize = 52428800;
});