大文件,就是内容的大小超过了一定数量的文件,比如1个GB的文件。

站点一般会限制上传文件的大小,如果超过了一定限制,则会报错误。

在处理大文件上传的方式上,IIS代理和Kestrel宿主服务器的处理方式是不一样的。

一、Kestrel宿主服务器

解决方法如下:

第一种处理方式:在需要处理大文件的接口中使用RequestSizeLimitAttribute特性。如:

  1. /// <summary>
  2. /// 上传文件
  3. /// </summary>
  4. [HttpPost("upload")]
  5. [RequestSizeLimit(1000_000_000)]
  6. public IActionResult Upload()
  7. {
  8. //......
  9. }

RequestSizeLimit(限制的容量大小),括号内就是需要限制的上送内容的大小值。

第二种处理方式:在需要处理大文件的接口中使用DisableRequestSizeLimitAttribute特性。如:

  1. /// <summary>
  2. /// 上传文件
  3. /// </summary>
  4. [HttpPost("upload")]
  5. [DisableRequestSizeLimit]
  6. public IActionResult Upload()
  7. {
  8. //......
  9. }

DisableRequestSizeLimitAttribute特性是指禁用对Http请求的大小限制。该特性可以加在Controller和Action上。若无需要,尽可能不要用此种方式放开对请求内容大小的限制。

二、IIS代理服务器

IIS代理服务器只认web.config配置文件里面的maxAllowedContentLength字段值。

解决方法如下:

第一步:在项目中创建一个web.config文件,如果有的话,就省略此步骤。如:

在web.config文件中添加如下代码:

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3. <system.webServer>
  4.  
  5. </system.webServer>
  6. </configuration>

第二步:将security节点加入到system.webServer节点中;

  1. <security>
  2. <requestFiltering>
  3. <!--单位:字节。 -->
  4. <requestLimits maxAllowedContentLength="524288000" />
  5. <!-- GB -->
  6. </requestFiltering>
  7. </security>

完整的web.config内容如下所示:

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3. <system.webServer>
  4. <security>
  5. <requestFiltering>
  6. <!--单位:字节。 -->
  7. <requestLimits maxAllowedContentLength="524288000" />
  8. </requestFiltering>
  9. </security>
  10. </system.webServer>
  11. </configuration>

maxAllowedContentLength的值就是允许上送内容的最大值。如果项目已经部署在服务器上,则可以直接在web.config的system.webServer节点下加入security节点。

.net core IIS/Kestrel上传大文件的解决方法的更多相关文章

  1. 【转】Windows2008上传大文件的解决方法(iis7解决上传大容量文件)

    2008上传大文件的解决方法:http://wenku.it168.com/d_000091739.shtml 2003上传大文件的解决方法:http://tech.v01.cn/windowsxit ...

  2. asp.net core流式上传大文件

    asp.net core流式上传大文件 首先需要明确一点就是使用流式上传和使用IFormFile在效率上没有太大的差异,IFormFile的缺点主要是客户端上传过来的文件首先会缓存在服务器内存中,任何 ...

  3. cgi+lighttpd上传大文件失败解决办法

    问题: - 前端页面点击上传按钮,不超过30M的小文件顺利上传到板子指定位置,上传60Md的更新包,出错,http状态码413——请求实体过大 环境: - web服务器——lighttpd1.4.30 ...

  4. 关于.NET C#上传大文件的解决办法

    1.最近在解决问题的时候遇到如何将视频以及语音和图片上传到阿里云的服务器中.但是遇到一些大文件就导致无法进行上传. 2.在将图片进行上传到阿里云的时候先将文件转化为二进制文件,然后通过文件流 的形式进 ...

  5. ceph rgw s3 java sdk 上传大文件分批的方法

    Using the AWS Java SDK for Multipart Upload (High-Level API) Topics Upload a File Abort Multipart Up ...

  6. php无法上传大文件完美解决方案

    php.ini无法上传大文件完美解决办法 1.打开php.ini(打开方式就不用说了,百度一大堆) 2.查找post_max_size 表单提交最大数值,此项不是限制上传单个文件的大小,而是针对整个表 ...

  7. PHP+IIS上传大文件

    最近刚接触IIS服务器,在使用php上传大文件的时候,遇到了一些问题.通过查阅网上资料进行了总结,希望对各位有帮助. 第一步,检查PHP的配置. 打开php.ini配置文件 1.file_upload ...

  8. IIS 上传大文件 30MB 设置限制了上传大小

    用uploadify在IIS6下上传大文件没有问题,但是迁移到IIS7下面,上传大文件时,出现HTTP 404错误. 查了半天,原来是IIS7下的默认设置限制了上传大小.这个时候Web.Config中 ...

  9. 日常采坑:.NetCore上传大文件

    一..NetCore上传大文件 .NetCore3.1 webapi 本地测试上传时,遇到一个坑,大点的文件直接失败,根本不走控制器方法. 二.大文件上传配置 IFormFile方式,vs IIS E ...

随机推荐

  1. python2精确除法

    python2和python3除法的最大区别: python2: print 500/1000 python2结果:取整数部分,小数并没有保留 0 Process finished with exit ...

  2. Fiddler和PostMan的使用例子和下载

    一.Fiddler:先下个 1.先讲下Get请求:很简单就一图示意: 然后再讲下POST:举个例子 请求主体的内容: User-Agent: FiddlerContent-Type: applicat ...

  3. JS函数预解析(小记)

    一,预解析:寻找var  function  形参     a=undefined    fn = function fn(){ alert(); } 二,逐行解读代码:    1.表达式    2. ...

  4. 第五章 JS典型特效

    注意: 1.JS在HTML中从上到下依次执行,所以获取元素的结果与JS的位置有关 <!DOCTYPE html> <html> <head> <title&g ...

  5. https://scrapingclub.com/exercise/basic_login/

    遇到的问题:csrftoken cfduid 是在request.headers里面的,一直在找怎么在scrapy里get request.header,从scrapy shell ,then fet ...

  6. QComboBox列表项高度设置

    QComboBox列表项高度设置步骤: 1. 设置代理 QStyledItemDelegate *delegate = new QStyledItemDelegate(this); ui->co ...

  7. JS中几种常见的高阶函数

    高阶函数:英文叫Higher-order function.JavaScript的函数其实都指向某个变量.既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数 ...

  8. StringUtils工具类常用方法汇总(截取、去除空白、包含、查询索引)

    一.截取   StringUtils中常用的截取字符串的方法如下: substring(String str,int start) substring(String str,int start, in ...

  9. Virtual DOM 和 diff 算法

    virtual DOM : virtual DOM 用 js 模拟 DOM 结构,用 js 来对比前后变化,提高重绘性能. diff: 比如在 git 中,如果用命令  git diff xxx文件 ...

  10. Spring错误——Spring AOP——org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException

    背景:学习切面,测试前置通知功能,xml配置如下 <?xml version="1.0" encoding="UTF-8"?> <beans ...