我正在运行ASP.NET Core Web应用程序,并希望上传大文件.
我知道在运行IIS时,可以通过web.config更改限制:
<httpRuntime maxRequestLength="1048576" /> ... <requestLimits maxAllowedContentLength="1073741824" />
如何在运行新的ASP.NET Core Kestrel Web服务器时执行等效操作?
我得到了例外情况“申请机构太大了”.
解决方法
我发现
this helpful announcement确认从ASP.NET Core 2.0开始有28.6 MB的主体大小限制,但更重要的是显示如何绕过它!
总结一下:
对于单个控制器或操作,请使用[DisableRequestSizeLimit]
属性进行无限制,或使用[RequestSizeLimit(100_000_000)]
指定自定义限制.
要在Build.cs文件内的BuildWebHost()方法内全局更改它,请在下面添加.UseKestrel选项:
WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseKestrel(options => { options.Limits.MaxRequestBodySize = null; }
为了更加清晰,您还可以参考Kestrel options documentation.