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

And*_*kiy 8 iis-express asp.net-core visual-studio-2019

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

Sai*_*uri 7

.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; });
Run Code Online (Sandbox Code Playgroud)

您可以从这里了解有关 Kestrel 的配置选项的更多信息

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