Server Error
404 – File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.
用户上传一个大小大约为160MB的文件至服务器出现这个错误。Insus.NET把上传文件于本机测试没有问题。但上传至服务器时,这个错误产生了。
本地可以,服务器却Error。可以肯定程序代码没有问题,怎样说呢?Insus.NET 测试尝试上传另一个相同的文件格式,只是大小有所改变,大小约为25MB,它即能成功上传了。
Insus.NET检查了web.config文件,可以上传的文件限制已经设置相当大了200MB。
<system.web>
<httpRuntime maxRequestLength="204800" useFullyQualifiedRedirectUrl="true" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100" enableVersionHeader="true" executionTimeout="6000" />
</system.web>
<httpRuntime maxRequestLength="204800" useFullyQualifiedRedirectUrl="true" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100" enableVersionHeader="true" executionTimeout="6000" />
</system.web>
问题出于哪里?
找到资料,原来IIS 的maxAllowedContent Length的缺省值为30000000 bytes. 上传大于这个长度的数据流被截断,导致文件或目录找不到。
因此Insus.NET尝试在web.config更改这个设置,添加下面节点:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2097152000" maxQueryString="5000" maxUrl="8000"></requestLimits>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2097152000" maxQueryString="5000" maxUrl="8000"></requestLimits>
</requestFiltering>
</security>
</system.webServer>
</security>
</system.webServer>
最后测试上传200MB的文件,能成功上传。