我有一个用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;
}
答案 0 :(得分:1)
您需要在.net核心api应用程序的web.config中增加此值
<appSettings>
<add key="aspnet:MaxJsonDeserializerMembers" value="150000" />
</appSettings>