我的网页上有一个文件上传控件。最大请求长度设置为8 MB(maxRequestLength = 8192)。如果文件超过4MB,我也有服务器验证会引发错误。其配置中的8MB是给用户的杠杆,并且还可以测试应用程序的原因。
如果我上传的文件是9MB,我会抛出一个异常“超过最大请求长度”,这是正常的,按预期工作。但是当我尝试上传一个1GB的文件时,它会显示一个HTTP 404 – 找不到文件。有人可以解释为什么会发生这种情况,我该如何让它给我一个maxRequestLength异常?
我正在使用IIS6。
解决方法
我今天遇到这种情况(使用IIS 7在大文件上传时使用HTTP 404),但是我以为我已经进行了所有正确的配置设置。我想上传最多300MB的文件,所以我在应用程序的子文件夹中进行了以下web.config设置:
<configuration> <system.web> <httpRuntime maxRequestLength="307200" /> </system.web> <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="314572800" /> </requestFiltering> </security> </system.webServer> </configuration>
此配置工作在测试中,但是当我将更新的文件(包括web.config)复制到生产服务器时,我在上传90MB文件时收到了HTTP 404错误。在30MB的应用范围限制下,较小的文件工作正常,所以我知道这是一个请求大小的问题。
我认为IIS有机会缓存一些应用程序设置,只是没有更新它们,所以我回收了应用程序池,之后一切都按预期工作。