2014-04-11 63 views
4

在我當前的C#web應用程序中,我從WebMethod請求一個JSON對象,這個JSON對象超過了最大JSONLength。並且結果在:如何發送大/多部分JSON對象而不更改maxJsonLength?

InvalidOperationException:字符串的長度超過maxJsonLength屬性上設置的值。

我目前的解決方案是,以提高對象的JSON長度maxJsonlength(在Web.config)以上,但現在,我過我的遷移應用到Windows Server(似乎這不支持此覆蓋)。有沒有辦法通過ajax POST部分發送JSON對象?如果是的話,什麼是最好的解決方案,我已經尋找了一種方法來發送數據的多個部分,但沒有明確的解決方案。

+1

我知道的唯一方法是更改​​實際的API - 例如添加客戶端可以使用的「有更多」(又名「偏移量」)鍵來請求相同源查詢的附加結果。 – 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> 

我希望這可以幫助任何人來到類似的問題。