Llamo a mi servicio web WCF usando jQuery $ .ajax json POST.
Uno de los parámetros de entrada es muy largo, más de 8000 bytes. Los datos que contiene son una lista de GUID separados por comas, como este "78dace54-1eea-4b31-8a43-dcd01e172d14, ce485e64-e7c6-481c-a424-2624371180aa, ede4c606-f743-4e0a-a8cc-59bcffa7feda, f0a81ed1-80db- 4f6d-92d7-2fc47759a409 ".
Cuando ese parámetro es 8176 bytes largo, la solicitud sucede. Cuando es (una coma más y GUID) - la solicitud falla.
No funciona desde el navegador y desde Fiddler (proxy de depuración HTTP). he añadido esto a la configuración de servicio web:Límite de tamaño de parámetro JSON
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000" recursionLimit="50000"/>
</webServices>
</scripting>
</system.web.extensions>
Eso no hace ninguna diferencia, la solicitud todavía falla de parámetros de entrada más de 8176 bytes de longitud.
Ese parámetro de entrada se mapea en una Cadena en el lado WCF.
¿Qué me estoy perdiendo? ¡Gracias!
UPDATE, esto solucionó mi problema: Resulta que esta configuración controla el JSON mensaje de longitud total
<webServices>
<jsonSerialization maxJsonLength="50000000" recursionLimit="50000"/>
</webServices>
Hay otra configuración que controla la longitud máxima de los parámetros individuales:
<bindings>
<webHttpBinding>
<binding name="Binding_Name" maxReceivedMessageSize="900000">
<readerQuotas maxDepth="32" maxStringContentLength="900000" maxBytesPerRead="900000" maxArrayLength="120000" maxNameTableCharCount="120000"/>
</binding>
</webHttpBinding>
</bindings>
también , asegúrese de configurar esto:
<system.web>
<httpRuntime maxRequestLength="900000"/>
Espero que esto solucione algunos dolores de cabeza.
¿Ha intentado que esa lista de GUID se pase como una matriz JSON? –
IMO podría ser un [elemento del navegador] (http://bytes.com/topic/javascript/answers/92088-max-allowed-length-javascript-string). –
Cuando la solicitud tuvo éxito, ¿cuál fue el tamaño real de la solicitud/respuesta http que se ve en Fiddler? –