如何在最小的 .Net Core 6 Web API 中设置最大正文长度并在接收 json 对象时允许大量上传

发布于 2025-01-10 11:43:34 字数 439 浏览 0 评论 0原文

当允许在 mvc Web 应用程序中进行大量上传时,您可以在 web.config 中指定这一点

httpRuntime maxRequestLength="xxx"

,如何在 appsettings.json 中为最小的 .Net Core 6 Web API 执行相同操作?我在 API 中收到一个大的 json 对象,需要设置至少 150MB

编辑: 我添加了这个来尝试一下。

builder.WebHost.ConfigureKestrel(serverOptions =>
{
    serverOptions.Limits.MaxRequestBodySize = 209715;
});

这可行,但如果发布的正文与允许的内容相比太大,我可以添加 http.Response.StatusCode 吗?

when allowing large uploads in a mvc web application you can specify this in web.config

httpRuntime maxRequestLength="xxx"

How do I do the same in appsettings.json for a minimal .Net Core 6 Web API? I'm receiving a large json object in my API and need to set at least 150MB

EDIT:
I added this to try it out.

builder.WebHost.ConfigureKestrel(serverOptions =>
{
    serverOptions.Limits.MaxRequestBodySize = 209715;
});

This works but can I add a http.Response.StatusCode if the posted body is to large compared to what is allowed?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼角的笑意。 2025-01-17 11:43:34

如果您想在每个端点上使用[RequestSizeLimit(40000000)]属性,则可以使用它。

或者,您也可以在整个应用程序的 Kestrel 设置过程中进行设置,例如:

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
    .UseStartup<Startup>()
    .UseKestrel(options =>
    {
        options.Limits.MaxRequestBodySize = 52428800; //50MB
    });
}

You can use [RequestSizeLimit(40000000)] attribute if you want to use it per endpoint.

Or, you can also set it during Kestrel setup for entire application, like:

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
    .UseStartup<Startup>()
    .UseKestrel(options =>
    {
        options.Limits.MaxRequestBodySize = 52428800; //50MB
    });
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文