.net core/IIS/Kestrel 大文件上传大小设置 - anech

💡 原文中文,约1300字,阅读约需4分钟。
📝

内容提要

MultipartBodyLengthLimit 设置多部分正文的默认长度限制为128MB,可通过Startup.ConfigureServices自定义。Kestrel和IIS也有请求正文大小限制,IIS默认为28.6MB,最大可设置为4GB。

🎯

关键要点

  • MultipartBodyLengthLimit 设置多部分正文的默认长度限制为128MB。

  • 超出此限制的窗体部分会引发 InvalidDataException。

  • 可以通过 Startup.ConfigureServices 自定义 MultipartBodyLengthLimit。

  • Kestrel 最大请求正文大小可以通过 ConfigureKestrel 设置。

  • IIS 默认请求限制为28.6MB,最大可设置为4GB。

  • 可以在 web.config 文件中自定义 IIS 的请求限制。

🔎

延伸解读

理解 MultipartBodyLengthLimit

MultipartBodyLengthLimit 是用于设置多部分请求的最大大小限制,默认值为128MB。超出此限制会导致 InvalidDataException 异常,因此在处理大文件上传时,开发者需要根据实际需求调整此限制,以避免上传失败。

Kestrel 与 IIS 的请求限制对比

Kestrel 和 IIS 对请求正文大小的限制有所不同。Kestrel 的最大请求正文大小可以通过代码灵活设置,而 IIS 的默认限制为28.6MB,最大可扩展至4GB。开发者在选择使用哪个服务器时,应考虑这些限制对应用性能的影响。

配置请求限制的注意事项

在配置请求限制时,开发者应注意不同环境下的设置方式。Kestrel 通过代码配置,而 IIS 则需要在 web.config 文件中进行设置。确保在生产环境中进行充分测试,以避免因配置不当导致的上传失败。

延伸问答

如何设置.NET Core中的MultipartBodyLengthLimit?

可以通过在Startup.ConfigureServices中自定义MultipartBodyLengthLimit来设置,默认值为128MB。

Kestrel的最大请求正文大小如何配置?

可以通过ConfigureKestrel方法设置Kestrel的最大请求正文大小。

IIS的默认请求限制是多少?

IIS的默认请求限制为28.6MB,最大可设置为4GB。

超出MultipartBodyLengthLimit会发生什么?

超出此限制的窗体部分会引发InvalidDataException。

如何在web.config中自定义IIS的请求限制?

可以在web.config文件中通过设置<requestLimits maxAllowedContentLength="4294967295" />来自定义请求限制。

如何在appsettings.json中配置Kestrel的请求大小限制?

可以在appsettings.json中通过设置{"Kestrel": {"Limits": {"MaxRequestBodySize": "100000000"}}}来配置。

🏷️

标签

➡️

继续阅读