2011-12-09 2 views
1

Visual Studio 2008에서 ASP.NET과 함께 Virtual Basic을 사용하고 있습니다. Webmethod를 사용하여 클라이언트와 서버간에 통신합니다. 데이터를 쿼리하고 소량으로 반환 할 수 있지만 비교적 많은 양의 데이터를 가져 오면 서버 500 오류가 반환됩니다. 데이터 크기는 226561 자이므로 크기는 크지 않지만 다른 실제 작업 테스트 세트보다 크기가 크며 약 10k 문자 길이입니다.상대적으로 큰 문자열을 반환 할 때 WebMethod가 작동하지 않습니다.

자바 스크립트 :

PageMethods.my_func("context", success); 
    function success(result, userContext, methodName) { 
     alert("success!"); 
    } 

실패 가상 기본 코드 :

<System.Web.Services.WebMethod()> _ 
Public Shared Function my_func(ByVal context As String) As IEnumerable 
    var result = "..." '200k characters long 
    Return result 
End Function 

성공적인 가상 Basic 코드 : 나는의 WebMethod 문자열 길이 제한 반환 증가 변경할 수있는 일

<System.Web.Services.WebMethod()> _ 
Public Shared Function my_func(ByVal context As String) As IEnumerable 
    var result = "..." '10k characters long 
    Return result 
End Function 

있는가 ? 길이 제한이 있습니까 아니면 볼 수없는 다른 문제입니까?

+0

가 왜'IEnumerable'로'string'을 반환됩니다

당신은 Web.config의에서이 설정을 조정할 수 있습니다? –

+0

그게 자습서에서 내게 말한 것입니다. 실제로 결과를 반환하기 전에 자체 직렬화를 수행합니다. 그건 과다한가요? – Bill

+0

문자열에 직렬화를 수행하는 경우 메서드를 단순히 'string'을 반환하는 것으로 선언하는 것보다'IEnumerable'이 아닌 것으로 선언하는 것보다 낫습니다. –

답변

3

나는 문제가 maxJsonLength 재산 (추가 정보를 here)가 될 수 있다고 생각합니다.

+0

네, 네가 맞다. 네가 어떻게 이런 일을 찾니? – Bill

+0

@ YongkeBillYu : 오랜 세월 동안 똑같이 또는 비슷한 문제로 벽을 머리에 대고 두드렸다. –

관련 문제