我将maxAllowedContentLength更改为
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="5024000000" />
</requestFiltering>
</security>
在我的web.config中,但在IIS7上运行时出现此错误:
'maxAllowedContentLength'属性无效。不是有效的无符号整数
但是当我在VS服务器中运行时,它正常运行而没有任何错误。
如何配置我的网站以允许上传大小为500MB的文件,在IIS7上没有这个问题?
答案 0 :(得分:106)
.Net中的请求限制可以从两个属性配置在一起:
Web.Config/system.web/httpRuntime/maxRequestLength
Web.Config/system.webServer/security/requestFiltering/requestLimits/maxAllowedContentLength
(以字节为单位)参考文献: http://www.whatsabyte.com/P1/byteconverter.htm https://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits
示例:
<location path="upl">
<system.web>
<!--The default size is 4096 kilobytes (4 MB). MaxValue is 2147483647 KB (2 TB)-->
<!-- 100 MB in kilobytes -->
<httpRuntime maxRequestLength="102400" />
</system.web>
<system.webServer>
<security>
<requestFiltering>
<!--The default size is 30000000 bytes (28.6 MB). MaxValue is 4294967295 bytes (4 GB)-->
<!-- 100 MB in bytes -->
<requestLimits maxAllowedContentLength="104857600" />
</requestFiltering>
</security>
</system.webServer>
</location>
答案 1 :(得分:82)
根据MSDN maxAllowedContentLength
类型为uint
,其maximum value为4,294,967,295字节= 3,99 gb
所以它应该可以正常工作。
另见Request Limits article。当完全没有配置相应的部分时,IIS是否会返回其中一个错误?
答案 2 :(得分:2)
IIS v10 (但这对于IIS 7.x也应该相同)
快速添加正在寻找各自最大值的人
maxAllowedContentLength
的最大值为:UInt32.MaxValue --> 4294967295 bytes: ~2GB
maxRequestLength
的最大值为:Int32.MaxValue --> 2147483647 bytes: ~4GB
web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<!-- ~ 2GB -->
<httpRuntime maxRequestLength="2147483647" />
</system.web>
<system.webServer>
<security>
<requestFiltering>
<!-- ~ 4GB -->
<requestLimits maxAllowedContentLength="4294967295" />
</requestFiltering>
</security>
</system.webServer>
</configuration>