.NET CORE 部署IIS出现,文件上传413错误。
[*] 哀求体巨细:
[*] 哀求头中显示 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企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]