gteric 发表于 2015-8-17 13:01:16

ASP.Net 文件上传大小限制

IIS 7 默认文件上传大小时30M
要突破这个限制:
1. 修改IIS的applicationhost.config
    打开 %windir%\system32\inetsrv\config\applicationhost.config
   找到: <requestFiltering>节点,
这个节点默认没有 <requestLimitsmaxAllowedContentLength="上传大小的值(单位:byte)" /> 元素,IIS 7和IIS 7.5上测试过最大值只能是<requestLimits maxAllowedContentLength="4294967295" /><4GB,
   为这个节点新增如下事例元素:<requestLimitsmaxAllowedContentLength="2147483647" /> ,上传的大小将改为2G
注意: %windir%\system32\inetsrv\config\applicationhost.config 文件一定不要用其他机器的文件替换,否则IIS将无法启动
此文件记录了,当前IIS中所有Site , App pool的信息,还有一些与机器相关的配置。

2 修改web.config   <system.web>
   <httpRuntimeexecutionTimeout="36000"maxRequestLength="2097151"/>   <!--maxRequestLength:上传的大小,单位K   ,executionTimeout:设置超时时间,单位:秒。(默认是90秒) -->
</system.web>

  注意:这个maxRequestLength最大值只能是2097151K,设置大于这个值将会出现如下错误:
  
  Configuration Error
  Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: The value for the property 'maxRequestLength' is not valid. The error is: The value must be inside the range 0-2097151.
Source Error:

  
  Line 117:    <httpHandlers />
  Line 118:    <customErrors mode="RemoteOnly" />
  Line 119:    <httpRuntime executionTimeout="36000" maxRequestLength="4194304" />
  Line 120:    <authentication mode="Windows" />
  Line 121:    <identity impersonate="true" />
  
3.web.config下如果有如下节点(此节点是为IIS 7设计的) ,则修改
<requestLimitsmaxAllowedContentLength="2147483647" /> 单位与applicationhost.config中的<requestLimitsmaxAllowedContentLength="2147483647" />一致,它的最大值也只能为4294967295

  <system.webServer>
  <security>
  <requestFiltering>
  <requestLimitsmaxAllowedContentLength="2147483647" />
  </requestFiltering>
  </security>
  </system.webServer>
  
  
  总结:asp.net(IIS 7 and IIS 7.5)上传文件的最大值不能超过2GB
页: [1]
查看完整版本: ASP.Net 文件上传大小限制