WCF dice que excede el valor máximo de cadena de consulta mientras que no lo es

Tengo un servicio WCF (sobre un webHttpBinding) usando ASP.NET 4/IIS 8 y no tuve problemas para comunicarme con él usando JSON con GET. Sin embargo, hoy necesitaba implementar un método que envíe una cadena de consulta grande (alrededor de 3000 caracteres, no tan larga pero más larga que la que he estado usando). Llamé al servicio e inmediatamente obtuve un error 404, sin siquiera entrar en mi código en mi máquina de depuración. Lo primero que me vino a la mente es el límite máximo de longitud de cadena de consulta. He agregado esto a mi web.config:

 <system.webServer>
    <directoryBrowse enabled="true" />
    <security>
      <requestFiltering>
        <requestLimits maxQueryString="8000"></requestLimits>
      </requestFiltering>
    </security>
  </system.webServer>

Ahora, recibo este error del servidor cuando llamo al servicio: The length of the query string for this request exceeds the configured maxQueryStringLength value. Por extraño que parezca, he probado otros valores como 200000, muy por encima de mi cadena de consulta y URL, que tiene unos 3000 caracteres. ¿Me estoy perdiendo de algo?

preguntado el 08 de septiembre de 12 a las 09:09

1 Respuestas

Quizás establecer maxQueryStringLength in el elemento httpRuntime.

Es un poco confuso tener dos opciones de configuración, pero creo que se pueden interpretar de la siguiente manera:

  • La httpRuntime La propiedad maxQueryStringLength es nueva en ASP.NET 4 y configura la longitud máxima de la cadena de consulta que puede procesar el tiempo de ejecución HTTP de ASP.NET. Antes de ASP.NET 4, este era un valor fijo de 2048; ahora se puede aumentar.

  • La system.web/security/requestFiltering La propiedad maxQueryStringLength es una configuración de IIS 7 y permite que un administrador restrinja la longitud máxima de la cadena de consulta. Esta configuración no es específica de ASP.NET.

Respondido el 08 de Septiembre de 12 a las 11:09

eso hizo el truco. es confuso tener una configuración de este tipo en dos lugares diferentes (sé que probablemente esté marcada en un nivel diferente y permita una mayor optimización, pero es confuso). Gracias. - Can Poyrazoğlu

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.