有一个简单的WebMethod,它将文本文件(500000行)读入字符串数组。 调用该方法的ajax具有成功和错误调用。
问题: 我可以调试后端代码,看看一切都如预期。所有值都按预期读取,代码正确地结束。
然而,当代码超出ReadAllLines()
行时,它会在前端发生错误。
究竟发生了什么:
mywords
数组包含从文件中读取的所有单词。没有错误。但是,网页(前端)会触发警报(错误)。无法弄清楚出了什么问题。
C#WebMethod:
[System.Web.Services.WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string[] Test(string Test)
{
string[] mywords = File.ReadAllLines(Server.MapPath("~/Sample/sample.txt"));
return mywords;
}
AJAX电话:
$.ajax({
type: "POST",
url: "test.aspx/Test",
data: JSON.stringify({ Test: Test }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert("success");
},
error: function (xhr, status, error) {
alert("error");
}
});
更新:当我将输入文件更改为包含较少行(如10,000行)的另一个文件时。它没有错误。
答案 0 :(得分:1)
JSON字符串的默认最大长度为2097152个字符(4 MB)。它在Web.config中的MaxJsonLength属性中定义。
您可能需要在配置中定义更高的值。以下是您可以为MaxJsonLength
设置的最大值:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483647"></jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>