ASP.NET Core 2.0中,解决大文件上传配置问题

   在.net core2.0中,当上传文件大于30MB时,会报出: 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值的问题。

  针对此问题的解决思路如下:

  1)、在Startup.cs中增加如下代码:

   public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            //配置文件大小限制 1GB
            services.Configure<FormOptions>(options =>
            {
                options.ValueLengthLimit = 1073741824; 
                options.MultipartBodyLengthLimit = 1073741824;
            });

      //........

  }

2)、在具体的方法前增加如下代码:

      /// <summary>
        /// 上传附件
        /// </summary>
        /// <returns></returns>
        [RequestSizeLimit(1073741824)]
        [HttpPost]
        [Route("FileUpLoad")]
        public ActionResult<IEnumerable<string>> UpLoadFile([FromForm]IFormCollection formCollection, string projectId, string stage_id)
        {

          //.......       

       }

3)、在项目中增加web.config文件,具体代码如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- 1 GB -->
        <requestLimits maxAllowedContentLength="1073741824" />
      </requestFiltering>
    </security>
  </system.webServer>

</configuration>

通过以上的三个步骤即可解决系统中报报出的问题:请求筛选模块被配置为拒绝超过请求内容长度的请求, 这是一项安全功能。请不要更改此功能,除非您完全清楚更改的影响范围。您可以配置 IIS 服务器以拒绝内容长度大于指定值的请求。如果请求的内容长度大于所配置的长度,便会返回此错误。如果需要增加内容长度

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章