【Web应用】JAVA网络上传大文件报500错误
问题描述
当通过 JAVA 网站上传大文件,会报 500 错误。
问题分析
因为 Azure 的 Java 网站都是基于 IIS 转发的,所以我们需要关注 IIS 的文件上传限制以及 requestTimeout。
解决方法
-
由于 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>
-
若上传大文件,建议配置 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">
-
做完上述的配置之后,建议在管理门户重启网站。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步