.Net Core POST请求数组大小限制

时间:2019-10-10 18:04:24

标签: javascript .net ajax asp.net-core

我有一个用JavaScript编写的带有.net核心后端的UI。我在JS中的ajax调用看起来像这样:

const data = { users: userArray, message: sendMessage, url: optUrl };

$.ajax({
    type: "POST",
    url: `${App_Url}/ui/Notifications/send`,
    dataType: "application/json",
    data: JSON.stringify(data),
    success: (response) => {
        // if (spinner)
        //   spinner.stop();
        //
        notifySuccess("Users imported successfully!");
        $("#user_table").html(response);
    },
    error: (error) => {
        //if (spinner)
        //  spinner.stop();
        //
        notifyErrors(error.responseJSON.errors);
    }
});

现在我遇到的问题是,当我的userArray大于某个数字(不确定数字是多少)时,我的服务器似乎只是放弃了呼叫。例如,当我的userArray的大小为15时,我可以在.NET控制器中设置一个断点,然后就可以了。但是,当我的userArray为1000时,我什至没有到达断点,服务器返回500。这是什么原因以及如何解决它?

我的控制器:

    [HttpPost("send")]
    [DisableRequestSizeLimit]
    public async Task<IActionResult> SendNotificationsAsync(CustomNotificationRq request)
    {
        var token = await _service.GetMiddlewareToken();
        var users = request.users;
        var message = request.message;
        var url = request.url;

        var response = await _service.SendNotificationAsync(users.ToList(), message, url, token.token);


        return response;
    }

1 个答案:

答案 0 :(得分:1)

您需要在.net核心api应用程序的web.config中增加此值

<appSettings>
  <add key="aspnet:MaxJsonDeserializerMembers" value="150000" />
</appSettings>