【问题标题】:.Net Core Kestrel Hitting A GET Limit for JSON Data.Net Core Kestrel 达到 JSON 数据的 GET 限制
【发布时间】:2022-12-17 06:10:30
【问题描述】:

我正忙于调整 .Net Core Kestrel 应用程序的限制,以允许通过 GET 请求发送大量 JSON 数据。

builder.UseKestrel(options => {
    int oneByte = 1048576;
    options.Limits.MaxRequestLineSize = (4 * oneByte);
    options.Limits.MaxRequestBufferSize = (4 * oneByte);
    options.Limits.MaxResponseBufferSize = (4 * oneByte);
    options.Limits.MaxRequestBodySize = (10 * oneByte);
});

因此,我几乎将所有内容都设置为 4MB 限制(MaxRequestBodySize 除外),但我仍然达到约 2.1MB 的 JSON 数据的限制。我知道在 GET 请求中使用如此大量的 JSON 数据是不正常的,但为什么当它低于我的 4MB 阈值时仍然受到限制?

是否有可能限制 JSON 数据中的属性数量而不是大小,是否有任何方法可以增加此限制?

【问题讨论】:

  • 你能测试一下,将 MaxResponseBufferSize 设置为 null
  • 将 MaxResponseBufferSize 设置为 null 似乎有同样的问题
  • 你有想过这个吗?
  • @AtomicallyBeyond 我做了但忘记发布了,我将发布我现在所做的

标签: json .net-core kestrel-http-server


【解决方案1】:

最终使这项工作正常进行的是在服务配置中包含这些设置

public void ConfigureServices(IServiceCollection services) {

    services.Configure<FormOptions>(options => {
        options.ValueCountLimit = int.MaxValue;
        options.ValueLengthLimit = int.MaxValue;
        options.MultipartBodyLengthLimit = int.MaxValue;
        options.MultipartHeadersCountLimit = int.MaxValue;
        options.MultipartHeadersLengthLimit = int.MaxValue;
    });

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 2019-10-02
    • 2021-08-19
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多