.net core/IIS/Kestrel 大文件上传大小设置 - anech
内容提要
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"}}}来配置。