• .net core IIS/Kestrel上传大文件的解决方法


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

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

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

    一、Kestrel宿主服务器

     解决方法如下:

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

            /// <summary>
            /// 上传文件
            /// </summary>
            [HttpPost("upload")]
            [RequestSizeLimit(1000_000_000)]
            public IActionResult Upload()
            {
               //......
            }

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

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

            /// <summary>
            /// 上传文件
            /// </summary>
            [HttpPost("upload")]
            [DisableRequestSizeLimit]
            public IActionResult Upload()
            {
               //......
            }

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

    二、IIS代理服务器

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

    解决方法如下:

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

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

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.webServer>
       
      </system.webServer>
    </configuration>

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

     <security>
          <requestFiltering>
            <!--单位:字节。 -->
            <requestLimits maxAllowedContentLength="524288000" />
            <!-- 1 GB -->
          </requestFiltering>
     </security>

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

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.webServer>
        <security>
          <requestFiltering>
            <!--单位:字节。 -->
            <requestLimits maxAllowedContentLength="524288000" />      
          </requestFiltering>
        </security>
      </system.webServer>
    </configuration>

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

  • 相关阅读:
    全文搜索(AB-2)-权重
    全文搜索(A-2)-推荐算法
    全文检索(AB-1)-相关领域
    全文搜索(A)-相关性
    ElasticSearch全文搜索引擎(A)
    mvc 的HtmlHelper
    left join 与left outer join的区别
    ms sqlserver数据库建索引
    w3c xml
    System and method for critical address space protection in a hypervisor environment
  • 原文地址:https://www.cnblogs.com/williamwsj/p/9641758.html
Copyright © 2020-2023  润新知