提升ASP.NET Core文件上传大小限制
在ASP.NET Core中,您可能会遇到文件上传大小限制。要解决此问题,您需要同时考虑Web服务器(IIS)和ASP.NET Core服务器(Kestrel)施加的限制。
IIS文件大小限制
如您提供的链接资源中所述,IIS对文件上传大小有默认限制。要增加应用程序的此限制,请按照以下步骤操作:
Kestrel文件大小限制
从ASP.NET Core 2.0开始,Kestrel也对文件上传施加了自己的限制。这些限制在KestrelServerLimits.cs文件中定义。
要增加Kestrel中的文件大小限制,您可以采用以下几种方法:
MVC操作方法
在特定的MVC操作方法或控制器上使用[RequestSizeLimit]
特性来覆盖默认限制。例如:
<code class="language-csharp">[HttpPost] [RequestSizeLimit(100_000_000)] public IActionResult MyAction([FromBody] MyViewModel data) { }</code>
通用中间件
使用IHttpMaxRequestBodySizeFeature
特性来修改每个请求的限制:
<code class="language-csharp">app.Run(async context => { context.Features.Get<IHttpMaxRequestBodySizeFeature>().MaxRequestBodySize = 100_000_000; });</code>
全局配置
在UseKestrel
或UseHttpSys
的回调函数中修改MaxRequestBodySize
属性来全局设置限制:
<code class="language-csharp">.UseKestrel(options => { options.Limits.MaxRequestBodySize = null; // 无限制 }); .UseHttpSys(options => { options.MaxRequestBodySize = 100_000_000; });</code>
通过以上步骤,您可以同时增加ASP.NET Core中Web服务器和Kestrel服务器的文件上传大小限制。
以上是如何在ASP.NET Core中增加文件上传大小限制?的详细内容。更多信息请关注PHP中文网其他相关文章!