ASP.NET WebMethod读取文件错误
ASP.NET WebMethod reading file error
有一个将文本文件(500000 行)读入字符串数组的简单 WebMethod。
ajax调用方法有成功调用和错误调用。
问题:
我可以在后端代码上进行调试,并看到一切都符合预期。所有值都按预期读取并且代码正确地进行到最后。
但是,当代码超出 ReadAllLines()
行时,它会在前端引发错误。
到底发生了什么:
- 我在读取文本文件的 c# 代码的第一行放置了一个断点。
- 当我在调试期间转到下一行时,
mywords
数组包含从文件中读取的所有单词。没有错误。但是,网页(前端)触发警报(错误)。
不知道哪里出了问题。
C# Web 方法:
[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 行)的文件时。它可以正常工作。
JSON 字符串的默认最大长度为 2097152 个字符 (4 MB)。它定义在 MaxJsonLength 属性 中 Web.config.
您可能需要在配置中定义更高的值。这是您可以为 MaxJsonLength
设置的最大值:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483647"></jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
有一个将文本文件(500000 行)读入字符串数组的简单 WebMethod。 ajax调用方法有成功调用和错误调用。
问题: 我可以在后端代码上进行调试,并看到一切都符合预期。所有值都按预期读取并且代码正确地进行到最后。
但是,当代码超出 ReadAllLines()
行时,它会在前端引发错误。
到底发生了什么:
- 我在读取文本文件的 c# 代码的第一行放置了一个断点。
- 当我在调试期间转到下一行时,
mywords
数组包含从文件中读取的所有单词。没有错误。但是,网页(前端)触发警报(错误)。
不知道哪里出了问题。
C# Web 方法:
[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 行)的文件时。它可以正常工作。
JSON 字符串的默认最大长度为 2097152 个字符 (4 MB)。它定义在 MaxJsonLength 属性 中 Web.config.
您可能需要在配置中定义更高的值。这是您可以为 MaxJsonLength
设置的最大值:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483647"></jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>