.NET CORE 部署IIS出现,文件上传413错误。

  1. 请求体大小

    • 请求头中显示 Content-Length: 144052,即请求体大小约为 144KB。

    • IIS 在处理请求时,尝试读取请求体,但在某个阶段触发了大小限制。

  2. 错误触发模块

    • 错误是在 IIS Web Core 模块中触发的,具体是在 BEGIN_REQUEST 阶段。

    • 日志中显示:

      xml复制

      复制代码
      <EventID>0</EventID>
      <Opcode>MODULE_SET_RESPONSE_ERROR_STATUS</Opcode>
      <Data Name="ModuleName">IIS Web Core</Data>
      <Data Name="Notification">1</Data>
      <Data Name="HttpStatus">413</Data>
      <Data Name="HttpReason">Request Entity Too Large</Data>
  3. 配置限制

    • 你在 web.config 中配置了 maxAllowedContentLength="1073741824"(1GB),这看起来足够大。

    • 但日志显示请求体大小(144KB)远低于这个值,说明问题可能出在其他地方。

分析与解决建议

  1. uploadReadAheadSize 配置问题

    • 你提到之前将 uploadReadAheadSize 设置为 0,这可能导致 IIS 无法正确读取请求体。

    • 建议 :将 uploadReadAheadSize 设置为一个合理的值,例如 10485760(10MB)。在 applicationHost.config 文件中添加或修改:

    路径:C:\Windows\System32\inetsrv\config\applicationHost.config
    xml复制

    复制代码
      <serverRuntime uploadReadAheadSize="10485760" />

    然后重启 IIS。需要注意增加部署项目名称为自身的项目名称。
    *

    复制代码
          <location path="部署项目名">
              <system.webServer>
                  <security>
                      <access sslFlags="Ssl, SslNegotiateCert" />
                  </security>
      	    <serverRuntime uploadReadAheadSize="1073741824" />
              </system.webServer>
          </location>
  2. IIS 请求过滤模块的限制

    • IIS 的请求过滤模块可能对请求体大小有限制。

    • 建议 :检查 IIS 的请求过滤模块配置,确保没有其他限制。在 applicationHost.config 文件中,找到 <requestFiltering> 节点,确保 maxAllowedContentLength 设置正确:

      xml复制

      复制代码
      <requestFiltering>
        <requestLimits maxAllowedContentLength="1073741824" />
      </requestFiltering>
  3. ASP.NET Core 的请求体大小限制

    • 如果你的应用是 ASP.NET Core 应用,还需要在代码中配置请求体大小限制。

    • 建议 :在 Startup.csProgram.cs 中添加:

      csharp复制

      复制代码
      services.Configure<FormOptions>(x =>
      {
          x.MultipartBodyLengthLimit = 1073741824; // 1GB
      });
  4. 检查其他限制

    • 确保没有其他地方(如网络设备、代理服务器等)对请求体大小有限制。

    • 检查 IIS 的日志文件,确认是否有其他错误信息。

相关推荐
天平1 小时前
油猴脚本创建webworker踩坑记录
前端·javascript·typescript
原则猫3 小时前
前端基础大厦
前端
陈随易4 小时前
编程语言级别的Skill市场,AI Agent 的未来形态
前端·后端·程序员
SoaringHeart5 小时前
Flutter进阶:基于 EasyRefresh 的下拉刷新封装 n_easy_refresh_mixin.dart
前端·flutter
IT_陈寒6 小时前
Vite的热更新突然不香了,排查三小时差点砸键盘
前端·人工智能·后端
子兮曰7 小时前
Agency-Agents 深度解析:400+ AI 专家的"梦之队"如何重塑开发工作流
前端·后端·vibecoding
竹林8188 小时前
用 The Graph 查询链上数据实战:从手搓 RPC 到 Subgraph,我的 NFT 项目数据加载快了 10 倍
前端·javascript
妙码生花8 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十九):点选验证码代码逐行目检
前端·后端·go
Awu12279 小时前
⚡从零开发 Agent CLI(五)实现一个可治理、可扩展的工具系统
前端·人工智能·claude
咪库咪库咪9 小时前
Vue3-生命周期
前端