c# - 在 .NET 6 启动中配置 Kestrel 服务器选项
问题描述
我正在将 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 服务器启动配置。
解决方案
迁移指南的代码示例涵盖了这一点。您应该UseKestrel
在构建器上使用WebHost
:
builder.WebHost.UseKestrel(so =>
{
so.Limits.MaxConcurrentConnections = 100;
so.Limits.MaxConcurrentUpgradedConnections = 100;
so.Limits.MaxRequestBodySize = 52428800;
});
推荐阅读
- java - 如何在 SpringBoot 2 上禁用 ErrorPageFilter
- google-chrome - 如何解决“您现在不能访问……因为它的证书已被吊销。”
- r - 拆分由点连接的两个单词
- c# - C# 项目。试图在 .txt 文件中查找平均数、最小数、最大数和数字数
- python - 在使用 Pandas 的 Python 中,是否可以逐块读取 4B 行并针对内存中已经存在的 30M 行数据帧过滤每个卡盘?
- node.js - 谷歌云节点应用无法连接跨域请求被阻止
- html-email - 在 HTML 电子邮件签名上托管自定义字体
- javascript - 制作一个每 1 秒更改一次图像的滑块
- azure-devops - 使用 ASP.NET yaml 模板的新 Azure DevOps 管道失败
- c# - DataGrid 单行复选框正在选择所有行