首页 > 其他分享 >.NET 8 中 使用 IFormFile 上传大文件报错解决方案

.NET 8 中 使用 IFormFile 上传大文件报错解决方案

时间:2024-02-17 13:44:18浏览次数:32  
标签:int IFormFile MaxValue 报错 limit NET options

前言:

项目中使用 IFormFile写了一个上传文件的api,测试小文件时正常,当上传大文件(几十兆)时如下报错:
使用默认的http启动,如下提示

使用IIS启动,如下报错
Error: Request Entity Too Large

原因:

.NET官方出于安全考虑,对body的大小做了限制,超出了限制就会form转化失败,导致我们Reuest.Form为空,最终抛出异常,解决办法也很简单,根据你的启动方式,主要分为三个方面

1. IIS content length limit

The default request limit (maxAllowedContentLength) is 30,000,000 bytes, which is approximately 28.6MB. Customize the limit in the web.config file:

<system.webServer>
  <security>
    <requestFiltering>
      <!-- Handle requests up to 1 GB -->
      <requestLimits maxAllowedContentLength="1073741824" />
    </requestFiltering>
  </security>
</system.webServer>

Note: Without this application running on IIS would not work.

2. ASP.NET Core Request length limit:

For application running on IIS:

 builder.Services.Configure<IISServerOptions>(options =>
 {
      options.MaxRequestBodySize = int.MaxValue;
 });

For application running on Kestrel:

builder.Services.Configure<KestrelServerOptions>(options =>
{
     options.Limits.MaxRequestBodySize = int.MaxValue; // if don't set default value is: 30 MB
});

3. Form's MultipartBodyLengthLimit

builder.Services.Configure<FormOptions>(x =>
{
     x.ValueLengthLimit = int.MaxValue;
     x.MultipartBodyLengthLimit = int.MaxValue; // if don't set default value is: 128 MB
     x.MultipartHeadersLengthLimit = int.MaxValue;
});

标签:int,IFormFile,MaxValue,报错,limit,NET,options
From: https://www.cnblogs.com/qingheshiguang/p/18017910

相关文章

  • dotnet-cnblog tool 测试案例
    这是测试donet-cnblog工具是否能将正常的Typora图片转换为博客园格式测试1:本地图片导入测试2:QQ截图测试3:urlhttps://pics3.baidu.com/feed/9345d688d43f8794105499b2ead60ef819d53ad8.jpeg@f_auto?token=d70fe4868ac1356d70833be721199be3结论成功!!!随后整理出自己的实践......
  • 【译】我为 .NET 开发人员准备的 2023 年 Visual Studio 10 大新功能
    原文|JamesMontemagno翻译|郑子铭VisualStudio2022在2023年发布了许多令人难以置信的功能,为.NET开发人员提供了大量新工具来提高他们的工作效率。有这么多可供选择,我精心挑选了一个包括编辑器改进、生产力更新和人工智能辅助的选项。让我们来探讨一些最有影响力的功......
  • dotnet asp.net seer agv 后台服务 单例注入
    常驻后台的数据导出服务/常驻后台的数据导出服务.csproj<ProjectSdk="Microsoft.NET.Sdk.Web"><PropertyGroup><TargetFramework>net7.0</TargetFramework><Nullable>enable</Nullable><ImplicitUsings>enable</Implic......
  • Net 8 Blazor Web App项目访问Identity Server 4
    Net8BlazorWebApp项目访问IdentityServer4IdentityServer系列目录BlazorServer访问IdentityServer4单点登录-SunnyTrudeau-博客园(cnblogs.com)BlazorServer访问IdentityServer4单点登录2-集成Asp.Net角色-SunnyTrudeau-博客园(cnblogs.com)BlazorSe......
  • 《AI驱动下的开发者新生态》-2024长沙.NET技术社区活动-诚邀大家报名
    回顾2019年初,在.NET中文社区及包括苏州、广州、深圳等地区社区等大力推动、在众多企业的大力支持下,长沙地区的开发者们发起成立了长沙.NET技术社区,并组织了《2019年长沙开发者技术大会》,当时参会人数超过200多人,会上宣讲的约6个话题,也一度成为长沙地区比较热门的技术话题,在社区激......
  • Mac arm 调试 maui 提示 iOS 构建没有“net8.0-ios/iossimulator-x64”的目标解决办法
    在arm芯片mac调试,使用macforvs,出现以下错误obj/project.assets.json”没有“net8.0-ios/iossimulator-x64”的目标。确保已运行还原,且“net8.0-ios”已包含在项目的TargetFrameworks中。可能需要在项目RuntimeIdentifiers中包括“iossimulator-x64”。(NETSDK1047......
  • SharePoint Online 添加Viva Connections Dashboard报错
    前言上一篇博客为大家介绍了如何新建VivaConnectionsexperience,不过,在添加Dashboard的时候碰到了问题,这是因为默认不会新建Dashboard,我们需要手动创建。正文1.错误描述和错误截图,如下图:Can'tgetthisDashboardURL.Itmaynotbesetupyet,oritmay......
  • windows下c++遍历各个磁盘的所有文件,不知道为什么FindFirstFileA文件会报错,进而程序退
    下面的程序还有一些问题,比如360的一些目录就用FindFirstFileA函数打开错误;还有  C:\Windows\System32\WebThreatDefSvc ,属性只有 DIRECTORY,用函数 _access检查也没有问题,但是就是用FindFirstFileA打开的时候错误;至今没有想到解决办法,只能临时跳过这种目录。 #include......
  • .NET(C#)中new Dictionary(字典)初始化值(initializer默认值)
    ​  .NET(C#)中,当使用newDictionary<TKey,TValue>()初始化一个字典时,可以通过集合初始化器语法直接为字典添加初始键值对。如需要为字典设置默认值,通常是指为尚未在字典中明确设置的键提供一个默认返回值。Dictionary<TKey,TValue>类本身不直接支持默认值的概念,但可以通过......
  • 轻松实现.NET应用自动更新:AutoUpdater.NET教程
    在软件开发中,应用程序的自动更新功能是一个重要的特性,它能让用户在不手动干预的情况下获取最新的软件版本。这不仅提高了用户体验,还有助于开发者及时修复潜在的问题、增加新功能,并确保软件的安全性和稳定性。对于.NET开发者来说,实现自动更新功能并不总是那么简单。幸运的是,有一个......