2014-04-11 3 views
4

현재 C# 웹 응용 프로그램에서 WebMethod에서 JSON 개체를 요청하면이 JSON 개체가 maximumJSONLength를 초과합니다. 결과는 다음과 같습니다.maxJsonLength를 변경하지 않고 큰/다중 부분 JSON 객체를 보내는 방법은 무엇입니까?

InvalidOperationException : 문자열 길이가 maxJsonLength 속성에 설정된 값을 초과합니다.

나의 현재 솔루션은 maxJsonlength (의 Web.config의) 객체의 JSON 길이 이상으로 인상 이었지만 지금은 (윈도우 서버에 내 응용 프로그램을 통해 마이그레이션 오전이 기능을 지원하지 않는 것 같습니다 어떤 보수). Ajax POST를 통해 JSON 객체를 보낼 수있는 방법이 있습니까? 그렇다면 최상의 솔루션이 무엇인지, 나는 여러 부분으로 데이터를 전송하는 방법을 모색했지만 명확한 해결책은 없습니다.

+1

내가 아는 유일한 방법은 실제 API를 변경하는 것입니다. 클라이언트가 동일한 소스 쿼리에 대한 추가 결과를 요청하는 데 사용할 수있는 "has more"(일명 "오프셋") 키를 추가하십시오. – user2864740

+0

여기 상자 밖에서 생각하고 있지만 JSON 파일로 다운로드하여 파싱 할 수 있습니까? –

답변

0

이것은 maxJsonLength를 수정하지 않고도 작동하는 솔루션은 아니지만 Windows Server에서 maxJsonLength를 수정할 수 있습니다.

내 web.config에 다음을 추가하면 maxJsonLength를 편집 할 수있었습니다.

<configuration> 
    <configSections> 
    <sectionGroup name="system.web.extensions"   type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> 
    <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> 
     <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/> 
     <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> 
      <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere" /> 
      <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" /> 
      <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" /> 
      <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" /> 
     </sectionGroup> 
    </sectionGroup> 
    </sectionGroup> 
    </configSections> 
    ... 
</configuration> 

다른 사람들도 비슷한 문제가 발생하기를 바랍니다.

관련 문제