У меня есть проект ASP.NET, в котором AJAX вызывает веб-метод, который возвращает JSON.
Если у DataSet около 100 строк, проблем нет. Но с 1000 строк запускает ошибку:
Error during serialization or deserialization using JSON JavaScriptSerializer. The size of the string exceeds the value set in the maxJsonLength property
[WebMethod(EnableSession = true)]
public static string PublicWebMethod()
{
DataSet ds = new DataSet(); // in the reality do a mountrous query
if (ds.Tables[0].Rows.Count > 0)
{
return JsonConvert.SerializeObject(clsUtil.ToArray(ds.Tables[0]));
}
else
{
return "false";
}
}
}
Как я могу решить эту проблему, установив конфигурацию в методе?
Я не хочу менять web.config
@AdamB Это хорошее решение.





У меня была аналогичная проблема, и мне потребовалось время, чтобы выяснить проблему и исправить. Пожалуйста, включите следующий код после
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength = "50000000" />
</webServices>
</scripting>
</system.web.extensions>
Единственный способ - отредактировать web.config? Я действительно не хочу менять весь проект только для одного метода,
Возможно, не использовать DatSet и JsonConvert.Serialize, но использовать DataReader и JsonTextWriter, чтобы вы могли писать JSON в потоковом режиме. Я знаю, что кода немного больше, но он более производительный и не так сильно требует памяти.