Ограничение размера массива .Net Core POST - PullRequest
0 голосов
/ 10 октября 2019

У меня есть пользовательский интерфейс, написанный на JavaScript, с ядром .net. Мой вызов ajax в JS выглядит следующим образом:

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 Ответ

1 голос
/ 10 октября 2019

Вам нужно увеличить это значение в вашем файле web.config в вашем приложении .net core api

<appSettings>
  <add key="aspnet:MaxJsonDeserializerMembers" value="150000" />
</appSettings>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...