【问题标题】:Configuring Kestrel Server Options in .NET 6 Startup在 .NET 6 启动中配置 Kestrel 服务器选项
【发布时间】:2021-11-09 19:52:18
【问题描述】:

我正在将 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:WebApplicationBuilder.Host 不支持 ConfigureWebHost()。请改用 WebApplicationBuilder.Build() 返回的 WebApplication。

如果我删除了与 ConfigureWebHostDefaults 相关的任何内容,则应用程序启动没有问题。我无法弄清楚如何使用新的 .net6 Kestrel 服务器启动配置。

【问题讨论】:

    标签: c# asp.net-core kestrel-http-server .net-6.0 asp.net-core-6.0


    【解决方案1】:

    迁移指南的code examples 涵盖了这一点。您应该在构建器的WebHost 上使用UseKestrel

    builder.WebHost.UseKestrel(so =>
    {
        so.Limits.MaxConcurrentConnections = 100;
        so.Limits.MaxConcurrentUpgradedConnections = 100;
        so.Limits.MaxRequestBodySize = 52428800;
    });
    

    【讨论】:

    • 我花了太长时间才弄清楚builder.WebHost.UseSentry(); 哈哈谢谢!我也尝试使用builder.Host.ConfigureWebHostDefaults(builder => { });
    猜你喜欢
    • 2017-05-21
    • 1970-01-01
    • 2020-04-02
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 2016-03-31
    • 1970-01-01
    相关资源
    最近更新 更多