Asp.Net Core上传大文件请求体限制设置
IIS进程内部署时
1. Web.Config的<system.webServer>节点下增加
- <security>
- <requestFiltering>
- <requestLimits maxAllowedContentLength="20971520" />
- </requestFiltering>
- </security>
2. 配置IISServerOptions选项
- services.Configure<IISServerOptions>(options =>
- {
- options.MaxRequestBodySize = 20971520; // 20M
- });
若使用IIS托管时,可以根据请求响应的状态码确定是IIS报错(413)还是asp.net core框架(500)报错。
Kestrel部署
1. 配置KestrelServerOptions选项
- services.Configure<KestrelServerOptions>(options =>
- {
- options.Limits.MaxRequestBodySize = 20971520; // 20M
- });
全局设置(不区分部署方式)
context.Features.Get<IHttpMaxRequestBodySizeFeature>().MaxRequestBodySize = 20971520; // 20M
通过获取IHttpMaxRequestBodySizeFeature接口的实现类来设置最大请求体大小,该接口在不同的部署环境中具体的实现类不一样,
IIS中为:
HTTP1/2 Microsoft.AspNetCore.Server.IIS.Core.IISHttpContextOfT<Microsoft.AspNetCore.Hosting.HostingApplication.Context>
Kestrel中为:
HTTP1 Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1Connection<Microsoft.AspNetCore.Hosting.HostingApplication.Context>
HTTP2 Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2Stream<Microsoft.AspNetCore.Hosting.HostingApplication.Context>
这几个实现类中都实现了IHttpMaxRequestBodySizeFeature接口
需要注意的是该设置方式必须在读取请求体之前设置。
internal class Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1ContentLengthMessageBody
protected override void OnReadStarting()
{
long contentLength = this._contentLength;
long? maxRequestBodySize = this._context.MaxRequestBodySize;
if (contentLength > maxRequestBodySize.GetValueOrDefault() & maxRequestBodySize != null)
{
BadHttpRequestException.Throw(RequestRejectionReason.RequestBodyTooLarge);
}
}
Asp.Net Core上传大文件请求体限制设置的更多相关文章
- ASP.NET Core 上传大文件无法接收的问题
解决办法:在API项目中配置 1. 在 web.config 文件中 <system.webServer>里加入 <security> <requestFiltering ...
- [Asp.net]Uploadify上传大文件,Http error 404 解决方案
引言 之前使用Uploadify做了一个上传图片并预览的功能,今天在项目中,要使用该插件上传大文件.之前弄过上传图片的demo,就使用该demo进行测试.可以查看我的这篇文章:[Asp.net]Upl ...
- [Asp.net]Uploadify上传大文件,Http error 404 解决方案 - wolfy
引言 之前使用Uploadify做了一个上传图片并预览的功能,今天在项目中,要使用该插件上传大文件.之前弄过上传图片的demo,就使用该demo进行测试.可以查看我的这篇文章: [Asp.net]Up ...
- c# asp.net uploadify 上传大文件 出现的 HTTP 404 问题
用uploadify在IIS6下上传大文件没有问题,但是迁移到IIS7下面,上传大文件时,出现HTTP 404错误. 查了半天,原来是IIS7下的默认设置限制了上传大小.这个时候Web.Config中 ...
- asp.net上传大文件-请求筛选模块被配置为拒绝超过请求内容长度的请求
HTTP错误404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求,原因是Web服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(IIS 7 默认文件上传大 ...
- ASP.NET Core 上传多文件 超简单教程
示例源码下载地址 https://qcloud.coding.net/api/project/3915794/files/4463836/download 项目地址 https://dev.tence ...
- C# Asp.NET实现上传大文件(断点续传)
以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传 ...
- asp.net fileupload上传大文件时提示404.13错误
IIS 7 默认文件上传大小时30M 要突破这个限制,需要做如下操作: 1. 修改IIS的applicationhost.config 打开 %windir%\system32\inetsrv ...
- ASP.NET MVC 上传大文件时404
前一段时间会员的上传组件改用FLASH的swfupload来上传,既能很友好的显示上传进度,又能完全满足大文件的上传. 后来服务器升级到windows 2008,改为IIS7后,上传文件一旦超过30M ...
- .net core 上传大文件
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Thr ...
随机推荐
- CMakeList汇总
cmake_minimum_required(VERSION 2.8.3) PROJECT (HELLO) #工程名 set(CMAKE_BUILD_TYPE "Debug")se ...
- python_变量类型
列表:用[]标识,可以用下标进行访问,可以更改值 List = [123,'book'] print List 元组:用()标识,可以用下标进行访问,但是不能更改元素值,相当于只读 tuple = ( ...
- Vulhub 漏洞学习之:Discuz
Vulhub 漏洞学习之:Discuz 目录 Vulhub 漏洞学习之:Discuz 1 Discuz 7.x/6.x 全局变量防御绕过导致代码执行 1.1 漏洞利用过程 2 Discuz!X ≤3. ...
- [EULAR文摘] 新证据: NSAID对AS放射学进展的影响
新证据: NSAID对AS放射学进展的影响 Sieper J, et al. EULAR 2015. Present ID: OP0145. 背景: 既往有研究显示持续给予NSAID相较于按需给药能在 ...
- layui 父子弹窗数据交互(包含子弹窗自己关闭并给父弹窗数据填充)
//父级弹窗 function showAlertOrg() { layui.use('layer', function () { var body; var index = layer.open({ ...
- Python实战项目1-开发流程需求分析/基础环境搭建
软件开发流程 # 真正的企业里软件从立项到交付整个过程 -立项:确定公司要开发这个软件 公司高层 -软件来源 -产品经理设计出来的---->互联网项目 互联网公司 -用户(医院,政府部门,企业. ...
- 【Sql Server】经典SQL语句大全
一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...
- vue学习笔记:vue.js基础语法
一.VUE 概述 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅 ...
- element+Vue el-form组件进行查询时,当输入框仅有一项时,回车自动提交表单,浏览器会刷新页面
vue的写法就是el-form上添加阻止默认事件 @submit.native.prevent <el-form ref="queryForm" label-width=&q ...
- Nginx njs模块注入js
如实现表单代填或者webvpn模式,后续待研究