IIS Express 和 Visual Studio 2019 - 413.1 - 请求实体太大

IIS Express and Visual Studio 2019 - 413.1 - Request Entity Too Large

我有一个 .Net Core 2.2 服务,我正在尝试向其提交一个大型请求负载(包括几个 base-64 编码文件)。总大小不到 30mb。控制器立即拒绝并显示错误 413.1 - 请求实体太大。 我对这个问题做了一些研究,但大多数解决方案都集中在修改 uploadReadAheadSize 在完整版本的 IIS 中(但这是 IIS express,运行 在 VS 中本地),或修改 web.config 文件(这个 .Net Core 项目没有)。 该项目不会部署在 IIS 中,所以我认为我找到的解决方案在那个时候也不适合我。我怎样才能使它在本地工作以进行调试?

对于 .NET Core >2.0

,默认请求正文大小限制为 28.6 MB

如果您不打算将 IIS 用于部署并想让它用于调试目的,您可以使用 Kestrel 并在 Program.cs 中重置最大请求正文大小限制,如下所示

 public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .UseKestrel(options => { options.Limits.MaxRequestBodySize = null; });

您可以从 here

了解更多关于 Kestrel 的配置选项

此外,此更改已作为 .NET Core 2.0 版中的重大更改引入。 This 公告讨论了在 MVCMiddleware 中以及在全球范围内执行此操作的方法,就像我在上面展示的那样。