【Web应用】JAVA网络上传大文件报500错误

时间:2023-01-29 20:28:50

问题描述

当通过 JAVA 网站上传大文件,会报 500 错误。

问题分析

因为 Azure 的 Java 网站都是基于 IIS 转发的,所以我们需要关注 IIS 的文件上传限制以及 requestTimeout。

解决方法

  1. 由于 IIS 默认请求体的大小为 28.6M,若上传的文件超过这个大小,还需要在 web.config 文件中修改 IIS 请求体的大小,具体修改可以参照下面的例子:

    <configuration>
    <system.webServer>
    <security>
    <requestFiltering>
    <requestLimits maxAllowedContentLength="300000000"/>
    </requestFiltering>
    </security>
    </system.webServer>
    <system.web>
    <httpRuntime maxRequestLength="300000000" appRequestQueueLimit="100" useFullyQualifiedRedirectUrl="true" executionTimeout="600"/>
    </system.web>
    </configuration>
  2. 若上传大文件,建议配置 requestTimeout 为较长时间,默认是2分钟。

    <httpPlatform processPath="<Your_Project_Path>\bin\apache-tomcat-8.0.28\apache-tomcat-8.0.28\bin\startup.bat"     arguments="" stdoutLogEnabled="true" stdoutLogFile="<Your_stdout_Log_File_Path>"   requestTimeout="00:02:00">
  3. 做完上述的配置之后,建议在管理门户重启网站。

参考链接