2012-11-21 4 views
2

가능한 중복 :
Can I set an unlimited length for maxJsonLength in web.config?증가 POST 데이터 크기

나는 백 엔드 .cs 페이지로 정보를 전송하는 내 .aspx 페이지에서 스크립트를 가지고 . 대부분의 경우 데이터가 너무 큰 경우를 제외하고는 개념이 간단하고 최악입니다. "데이터"변수가 수용 할 수있는 용량을 늘리려면 web.config을 수정하지 않고 어떻게 할 수 있습니까? 아래 코드를 참조하십시오. .CS

[System.Web.Services.WebMethod] 
    public static string UpdateRecord(string note) 
    { 
     return note; 
    } 

이 코드는 간단하고 나의 목적은 데이터베이스에이 큰 문자열을 저장하는 것입니다

<script type="text/javascript"> 
    $(document).ready(function() { 
     var note = ""; 
     for (var i = 0; i < 200000; i++) 
      note = note + "x"; 

     $.ajax({ 
      type: "POST", 
      url: "GroupDetailsDisplayPlus.aspx/UpdateRecord", 
      data: "{note: \"" + note + "\"}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (msg) { 
       var response = msg.d; 
       alert("success"); 
       } 
      error: function (request, status, thrownError) { 
       //alert(request.thrownError); // short version 
       alert(request.responseText); // long version 
      } 
     }); 
    }); 
</script> 

.ASPX

(코드 ommited). for 루프를 100,000 사이클 만하도록 설정하면이 방법이 효과적입니다. 그러나 20 개주기에 증가하면 오류 메시지와 함께 실패합니다

{ "메시지". "오류는 JSON JavaScriptSerializer를 사용하여 직렬화 또는 직렬화 복원시에 문자열의 길이는 maxJsonLength 속성에 값 세트를 초과합니다. \\ \ n 매개 변수 이름 : 입력 ","StackTrace ": 에서 System.Web.Script.Serialization.JavaScriptSerializer.Deserialize (JavaScriptSerializer serializer, 문자열 입력, 형식 유형, Int32 depthLimit) \ r \ n System.Web .Script.Serialization.JavaScript Serializer.Deserialize [T] (문자열 입력) \ 012 \ 에서 System.Web.Script.Service.RestHandler.Exec uteWebServiceCall (HttpContext를 상황, WebServiceMethodData methodData) ","예외 유형 ":"System.ArgumentException "}

도움 어떤 모든 주셔서 감사합니다.

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

을이 :

+1

http://stackoverflow.com/questions/ 1151987/can-i-set-an-length-for-maxjsonlength-in-web-config – Madbreaks

+0

ASP.NET MVC 및 웹에 대해 중복 된 대화로 표시된 질문 .config. 이 질문은 jQuery/JavaScript에 관한 것입니다. 내가 잘못 본 것이 아니라면, 어떻게 이것이 중복 되는가? – Phil

+0

나는 심지어 "web.config를 수정하지 않고"굵게 표시했습니다. 위의 대답은 web.config의 수정을 요구하는 것입니다 ... 사람들이 중복보고를위한 요점을 얻었습니까? 아니면 독서에 문제가있는 사람들입니까? – Lukas

답변

10

이 시도

<system.web> 
    <httpRuntime requestValidationMode="2.0" executionTimeout="600" maxRequestLength="2000000" /> 
<system.web> 

또는 데이터를 분할하고 일부에 의해 부분적를 보내

var portionIndex = 0; 
var porions = new Array(); 
for(i = 0; i < 5; i++) 
{ 
    var note = ''; 
    for (var j = 0; j < 40000; j++) note += "x"; 
    portions.push(note); 
} 

SendPortion(); 

function SendPortion() 
{ 
     $.ajax({ 
      type: "POST", 
      url: "GroupDetailsDisplayPlus.aspx/UpdateRecord", 
      data: {porionsCount: porions.length, portion: porions[portionIndex] }, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (msg) { 
       portionIndex++; 
       if(portionIndex < porions.length) 
        SendPortion(); 
      } 
      error: function (request, status, thrownError) {} 
     }); 
} 
+0

web.config 해결 방법은 작동하지만 충분히 구체적이지 않았습니다. web.config가 아니라 앞면에서 할 수있는 무언가가 필요합니다 (.aspx 페이지). 그것은 나쁘다. 그리고 나는 당신에게 이것을위한 점을 줄 것이다. 그리고 나는 원래의 질문을 수정했다. – Lukas

+0

나는 내 ansver를 바꿨다. –