2017-10-01 10 views
0

문자열 배열로 텍스트 파일 (500000 줄)을 읽는 간단한 WebMethod가 있습니다. 메소드를 호출하는 ajax에는 성공 및 오류 호출이 있습니다.ASP.NET WebMethod 읽기 파일 오류

문제점 : 백엔드 코드에서 디버깅하여 모든 것이 예상대로 작동하는지 확인할 수 있습니다. 모든 값은 의도 한대로 읽히고 코드는 끝까지 올바르게 진행됩니다.

그러나 코드가 ReadAllLines() 행을 초과하면 프런트 엔드에서 오류가 발생합니다.

  • 는 내가 텍스트 파일을 읽을 C# 코드의 첫째 줄에 중단 점을 넣어 : 정확히 어떻게됩니까

    .

  • 디버깅 중에 다음 줄로 갈 때 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 라인과 같은 적은 수의 행을 포함 다른 하나의 입력 파일을 변경합니다. 그것은 오류없이 작동합니다.

+1

무엇이 오류입니까? – hardkoded

+0

'$ .ajax'는'dataType : 'json''을 기대하지만 당신의 메소드는'string []'을 반환합니다. –

+0

알렉스 - 반환 형식을 배열 대신 문자열로 변경하면 여전히 동일한 문제가 발생합니다. 자세한 내용은 – pessi

답변

1

JSON 문자열의 기본 최대 길이는 2097152 자 (4MB)입니다. Web.config의 MaxJsonLength 속성에 정의되어 있습니다.

아마도 설정에서 더 높은 값을 정의해야 할 것입니다. MaxJsonLength에 설정할 수있는 최대 값은 다음과 같습니다.

<system.web.extensions> 
    <scripting> 
     <webServices> 
      <jsonSerialization maxJsonLength="2147483647"></jsonSerialization> 
     </webServices> 
    </scripting> 
</system.web.extensions>