【App Service】Java应用上传文件功能部署在App Service Windows上报错 413 Payload Too Large

问题描述

Java应用开发了一个上传文件的接口,部署在App Service ( Windows ) 环境上。在测试过程中,发现当文件较大的时候就会遇见413 Payload Too Large的报错。

从请求的错误返回消息看,这个429是由IIS服务返回的,并不是Java 应用上的的返回。

server : Microsoft-IIS/10.0

x-powered-by : ASP.NET

根据这个信息,在网上查看 "IIS 413 Payload Too Large " ,得知IIS默认的文件上传大小不超过30MB,当超过30MB后,就会返回413 Payload Too Large的错误。解决方法就是在IIS中进行配置,或者修改 web.config 中的 requestLimits maxAllowedContentLength 值。

IIS 配置页面

或web.config

复制代码
<configuration>

  <system.webServer>

    <security>

      <requestFiltering>

        <requestLimits maxAllowedContentLength="209715200" /> <!-- 50 MB and can be adjusted based on the need-->

      </requestFiltering>

    </security>

  </system.webServer>

</configuration>

但是,这是在Azure App Service云环境上,并且部署项目的时候,并没有包含Web.config文件,应该如何配置呢?

问题解答

进入App Service的高级工具页面(Kudu: https://<app service name>.scm.chinacloudsites.cn/DebugConsole), 查看Java应用war包所在的目录 (c:\home\site\wwwroot)中,并没有web.config文件

所以,就需要手动创建web.config文件,然后在文件中写入如下内容:

web.config

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
    <httpRuntime maxRequestLength="512000" /> <!-- Size in KB, e.g., 500 MB -->
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- 允许最大上传 500MB -->
        <requestLimits maxAllowedContentLength="524288000" />
      </requestFiltering>
    </security>

  </system.webServer>
</configuration>

再次测试, 已经可以上传到大于30MB的文件了!

参考资料

Understanding and Resolving the HTTP 413 (Request Entity Too Large) in IIS : https://techcommunity.microsoft.com/blog/iis-support-blog/understanding-and-resolving-the-http-413-request-entity-too-large-in-iis/4227944


当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关推荐
Chester_19994 小时前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
EXI-小洲5 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
会周易的程序员6 小时前
给 PLC 写一个字节码虚拟机:STVM 虚拟机架构设计
开发语言·c++·虚拟机·软plc·iec61131·stvm
YCOSA20256 小时前
雨晨 Windows 11 IoT 企业版 LTSC 26H2 轻装 26300.9278 自用版
windows·物联网
机器视觉知识推荐、就业指导6 小时前
为什么老说“纯 Qt 没啥就业市场”?
开发语言·qt
telepan6 小时前
Qt 开发避坑与性能指南:如何优雅、安全地定义全局常量字符串?
开发语言·qt
m0_695251496 小时前
Qt MaintenanceTool 使用国内镜像加速下载(超详细教程)
开发语言·qt
2601_961901706 小时前
SpringBoot使用Nacos进行application.yml配置管理
java·spring boot·spring
何以解忧,唯有..7 小时前
LangChain 工具调用(Tool Calling)实战指南
java·前端·langchain
大衛說7 小时前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习