ASP.NET WebMethod读取文件错误

ASP.NET WebMethod reading file error

有一个将文本文件(500000 行)读入字符串数组的简单 WebMethod。 ajax调用方法有成功调用和错误调用。

问题: 我可以在后端代码上进行调试,并看到一切都符合预期。所有值都按预期读取并且代码正确地进行到最后。

但是,当代码超出 ReadAllLines() 行时,它会在前端引发错误。

到底发生了什么:

不知道哪里出了问题。

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>