- 哀求体巨细:
- 哀求头中显示 Content-Length: 144052,即哀求体巨细约为 144KB。
- IIS 在处理哀求时,尝试读取哀求体,但在某个阶段触发了巨细限定。
- 错误触发模块:
- 错误是在 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>
复制代码
- 配置限定:
- 你在 web.config 中配置了 maxAllowedContentLength="1073741824"(1GB),这看起来充足大。
- 但日记显示哀求体巨细(144KB)远低于这个值,阐明问题可能出在其他地方。
分析与解决发起
- 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>
复制代码
- IIS 哀求过滤模块的限定:
- IIS 的哀求过滤模块可能对哀求体巨细有限定。
- 发起:检查 IIS 的哀求过滤模块配置,确保没有其他限定。在 applicationHost.config 文件中,找到 <requestFiltering> 节点,确保 maxAllowedContentLength 设置正确:
xml复制
- <requestFiltering>
- <requestLimits maxAllowedContentLength="1073741824" />
- </requestFiltering>
复制代码
- ASP.NET Core 的哀求体巨细限定:
- 假如你的应用是 ASP.NET Core 应用,还需要在代码中配置哀求体巨细限定。
- 发起:在 Startup.cs 或 Program.cs 中添加:
csharp复制
- services.Configure<FormOptions>(x =>
- {
- x.MultipartBodyLengthLimit = 1073741824; // 1GB
- });
复制代码
- 检查其他限定:
- 确保没有其他地方(如网络装备、代理服务器等)对哀求体巨细有限定。
- 检查 IIS 的日记文件,确认是否有其他错误信息。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |