日期:2014-05-17 浏览次数:20908 次
IIS 7 默认文件上传大小时30M 要突破这个限制:
1. 修改IIS的applicationhost.config ??? 打开 %windir%\system32\inetsrv\config\applicationhost.config ???? 找到: <requestFiltering>节点, ? 这个节点默认没有 <requestLimits maxAllowedContentLength="上传大小的值(单位:byte)" /> 元素,IIS 7和IIS 7.5上测试过? 最大值只能是<requestLimits maxAllowedContentLength="4294967295" />? <4GB, ???? 为这个节点新增如下事例元素:<requestLimits maxAllowedContentLength="2147483647" /> ,上传的大小将改为2G 注意: %windir%\system32\inetsrv\config\applicationhost.config 文件一定不要用其他机器的文件替换,否则IIS将无法启动 此文件记录了,当前IIS中所有Site , App pool的信息,还有一些与机器相关的配置。
2 修改web.config <system.web> ???? <httpRuntime executionTimeout="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:
<httpHandlers /> <customErrors mode="RemoteOnly" /> <httpRuntime executionTimeout="36000" maxRequestLength="4194304" /> <authentication mode="Windows" /> <identity impersonate="true" />
3.? web.config下如果有如下节点(此节点是为IIS 7设计的) ,则修改 <requestLimits maxAllowedContentLength="2147483647" /> 单位与applicationhost.config中的<requestLimits maxAllowedContentLength="2147483647" />一致,它的最大值也只能为4294967295 <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="2147483647" /> </requestFiltering> </security> </system.webServer>
总结:asp.net(IIS 7 and IIS 7.5)上传文件的最大值不能超过2GB
看着步骤倒是也不算繁琐,可是本人照着步骤做了却没找到所说的<requestLimits>节点。无奈了
暮然回首,答案就在灯火阑珊处
其实上面分析的错误原因是对的,就是IIS中允许上传的最大文件默认是20多M,所以当上传较大的文件时才会报这个错误。后来用另外一种途径修改了这种设置。