Ограничение размера параметра JSON

Я вызываю свою веб-службу WCF, используя jQuery $ .ajax json POST.

Один из входных параметров - очень длинный - более 8000 байт. Данные в нем представляют собой список GUID, разделенных запятыми, например: 78dace54-1eea-4b31-8a43-dcd01e172d14, ce485e64-e7c6-481c-a424-2624371180aa, ede4c606-f743-4e0a-a -59bcffa7feda, f0a81ed1-80db-4f6d-92d7-2fc47759a409 ".

Если этот параметр имеет длину 8176 байт , запрос завершается успешно . Когда он 8213 (еще одна запятая и GUID) - запрос не выполняется .

Он не выполняется из браузера и из Fiddler (прокси-сервер отладки HTTP). Я добавил это в конфигурацию веб-сервиса:

<configuration>
<system.web.extensions>
    <scripting>
        <webServices>
            <jsonSerialization maxJsonLength="50000000" recursionLimit="50000"/>
        </webServices>
    </scripting>
</system.web.extensions>

Это не имеет значения, запрос по-прежнему не выполняется для входных параметров длиной более 8176 байт.
Этот входной параметр отображается в String на стороне WCF.
Что мне не хватает? Спасибо!

ОБНОВЛЕНИЕ, это решило мою проблему: Оказывается, этот параметр контролирует общую длину сообщения JSON.

<webServices>
     <jsonSerialization maxJsonLength="50000000" recursionLimit="50000"/>
</webServices>

Есть еще один параметр, который контролирует максимальную длину для отдельных параметров:

<bindings>
  <webHttpBinding>
    <binding name="Binding_Name" maxReceivedMessageSize="900000">
      <readerQuotas maxDepth="32" maxStringContentLength="900000" maxBytesPerRead="900000" maxArrayLength="120000" maxNameTableCharCount="120000"/>
    </binding>
  </webHttpBinding>
</bindings>

Также не забудьте установить это:

  <system.web>
     <httpRuntime maxRequestLength="900000"/>

Надеюсь, это решит некоторые проблемы!

10
задан Dmitri Mogilevski 13 March 2012 в 21:49
поделиться