Tod*_*her 23 file-upload kestrel-http-server asp.net-core asp.net-core-2.0
我正在运行ASP.NET Core Web应用程序,并希望上传大文件.
我知道在运行IIS时,可以通过web.config以下方式更改限制:
<httpRuntime maxRequestLength="1048576" />
...
<requestLimits maxAllowedContentLength="1073741824" />
Run Code Online (Sandbox Code Playgroud)
如何在运行新的ASP.NET Core Kestrel Web服务器时执行等效操作?
我得到了例外情况"申请机构太大了".
Tod*_*her 53
我发现这个有用的声明确认从ASP.NET Core 2.0开始有28.6 MB的主体大小限制,但更重要的是显示如何绕过它!
总结一下:
对于单个控制器或操作,请使用该[DisableRequestSizeLimit]属性没有限制,或使用[RequestSizeLimit(100_000_000)]指定自定义限制.
要在BuildWebHost()方法内部全局更改Program.cs文件,请在文件中添加以下.UseKestrel选项:
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel(options =>
{
options.Limits.MaxRequestBodySize = null;
}
Run Code Online (Sandbox Code Playgroud)
为了更加清晰,您还可以参考Kestrel选项文档.
在对方的回答是ASP.NET 2.0的核心,但我想为.NET核心3.x的网络API的解决方案。
你的代码program.cs必须像这样才能工作:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
webBuilder.UseKestrel(options =>
{
options.Limits.MaxRequestBodySize = null;
});
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10819 次 |
| 最近记录: |