ASP.NET 上传文件最大值调整
2016-06-15 19:58
459 查看
首先,最容易找到的是web.config下面配置:
这么设置会将请求的尺寸从默认4MB(4096KB)提升到50MB(51200KB)。
但是,如果只是这么设置的话,你会发现你的最大上传尺寸会停止在28.6MB,更大的文件上传,将返回404.13,表示内容长度过大。
原因在于IIS的默认设置,限定了maxAllowedContentLength的值。
该值在IIS_Schema.xml中设置。(将影响整个计算机)
IISExpress:IISExpress运行路径下,C:\Program Files (x86)\IIS Express\config\schema\IIS_schema.xml
IIS7、8:C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml
如果修改了这个值没有生效,两种可能,一种是当前运行的IISExpress/IIS没有关闭/重启。一种是web.config中有额外的配置(如下文所述)。
然而为了避免总是去修改全局的值,影响到同一台服务器上的其他web站点,我们还可以在web.config中进行配置。
为了使该内容生效,需要配置“允许继承”,在applicationHost.config中搜索<section name="requestFiltering" overrideModeDefault="Allow" />中的关键字,确保这个值为Allow即可。
IISExpress:C:\Users\UserName\Documents\IISExpress\config\applicationHost.config
IIS7、8:C:\Windows\System32\inetsrv\config\applicationHost.config
参考资料:
http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits http://www.cnblogs.com/henryhappier/archive/2010/09/20/1832098.html https://msdn.microsoft.com/en-us/library/ms689462(v=vs.90).aspx
<!--maxRequestLength=50MB--> <httpRuntime targetFramework="4.5.2" maxRequestLength="51200"/>
这么设置会将请求的尺寸从默认4MB(4096KB)提升到50MB(51200KB)。
但是,如果只是这么设置的话,你会发现你的最大上传尺寸会停止在28.6MB,更大的文件上传,将返回404.13,表示内容长度过大。
原因在于IIS的默认设置,限定了maxAllowedContentLength的值。
<element name="requestLimits"><attribute name="maxAllowedContentLength" type="uint" defaultValue="30000000" />
该值在IIS_Schema.xml中设置。(将影响整个计算机)
IISExpress:IISExpress运行路径下,C:\Program Files (x86)\IIS Express\config\schema\IIS_schema.xml
IIS7、8:C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml
如果修改了这个值没有生效,两种可能,一种是当前运行的IISExpress/IIS没有关闭/重启。一种是web.config中有额外的配置(如下文所述)。
然而为了避免总是去修改全局的值,影响到同一台服务器上的其他web站点,我们还可以在web.config中进行配置。
<system.webServer> <!-- IISExpress:C:\Users\UserName\Documents\IISExpress\config\applicationHost.config IIS7、8:C:\Windows\System32\inetsrv\config\applicationHost.config <section name="requestFiltering" overrideModeDefault="Allow" /> overrideModeDefault值设置成Allow的时候,本配置节才会生效。 也可以在IIS_Schema.xml中设置。(将影响整个计算机) IISExpress:IISExpress运行路径下,C:\Program Files (x86)\IIS Express\config\schema\IIS_schema.xml IIS7、8:C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml 修改defaultValue="30000000"(28.6MB)为需要的值。 <element name="requestLimits"><attribute name="maxAllowedContentLength" type="uint" defaultValue="30000000" /> --> <security> <requestFiltering> <!--maxAllowedContentLength=100MB--> <requestLimits maxAllowedContentLength="104857600"></requestLimits> </requestFiltering> </security>
为了使该内容生效,需要配置“允许继承”,在applicationHost.config中搜索<section name="requestFiltering" overrideModeDefault="Allow" />中的关键字,确保这个值为Allow即可。
IISExpress:C:\Users\UserName\Documents\IISExpress\config\applicationHost.config
IIS7、8:C:\Windows\System32\inetsrv\config\applicationHost.config
参考资料:
http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits http://www.cnblogs.com/henryhappier/archive/2010/09/20/1832098.html https://msdn.microsoft.com/en-us/library/ms689462(v=vs.90).aspx
相关文章推荐
- Java 8: 从永久代(PermGen)到元空间(Metaspace)
- 建筑材料系统 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发
- ASP.NET Web API 入门示例详解
- ASP.NET应用程序与页面生命周期
- ASP.NET样板项目ABP框架的特性总结
- Asp.net GridView 应用实例
- 基于ASP.NET MVC的ABP框架入门学习教程
- ASP.NET MVC搭建项目后台UI框架—11、自动加载下拉框查询
- ASP.NET相关笔记总结
- 使用Gridview控件的链接实现页面跳转并且传值
- IIS 7.0, ASP.NET, pipelines, modules, handlers, and preconditions
- ASP.NET Core1.0 带来的新特性
- ASP.NET 允许跨域请求
- 【翻译整理】ASP.NET Web API 2
- ASP.NET MVC基于标注特性的Model验证:ValidationAttribute
- aspnet调用mysql存储过程
- Microsoft.AspNetCore.Routing路由
- ASP.NET Core 中间件详解及项目实战
- ASP.NET Core -- 安装版
- ASP.NET Core真实管道详解[1]:中间件是个什么东西?