He investigado el código 400 - BadRequest durante las últimas dos horas. Muchas sugerencias hacen para garantizar que el atributo bindingConfiguration esté configurado correctamente y, en mi caso, sí lo está.No se puede establecer maxReceivedMessageSize a través de web.config
Ahora, necesito su ayuda antes de destruir el edificio que estoy en :-)
Tengo un servicio de WCF Restfull (muy ligero, el uso de este recurso para la inspiración: http://msdn.microsoft.com/en-us/magazine/dd315413.aspx), que (por ahora) acepta una XmlElement (POX) proporcionado a través del verbo POST.
Actualmente, SOLO estoy usando el creador de solicitudes de Fiddler antes de implementar un cliente verdadero (ya que se trata de entornos mixtos).
Cuando hago esto para XML menor que 65K, funciona bien - más grande, arroja esta excepción: Se ha excedido la cuota máxima de tamaño de mensaje para los mensajes entrantes (65536). Para aumentar la cuota, use la propiedad MaxReceivedMessageSize en el elemento de enlace apropiado.
Aquí está mi archivo web.config (que incluso incluí la etiqueta para el cliente (tiempos desesperados)!):
<system.web>
<httpRuntime maxRequestLength="1500000" executionTimeout="180"/>
</system.web>
<system.serviceModel>
<diagnostics>
<messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" />
</diagnostics>
<bindings>
<webHttpBinding>
<binding name="WebHttpBinding" maxReceivedMessageSize="1500000" maxBufferPoolSize="1500000" maxBufferSize="1500000" closeTimeout="00:03:00" openTimeout="00:03:00" receiveTimeout="00:10:00" sendTimeout="00:03:00">
<readerQuotas maxStringContentLength="1500000" maxArrayLength="1500000" maxBytesPerRead="1500000" />
<security mode="None"/>
</binding>
</webHttpBinding>
</bindings>
<client>
<endpoint address="" binding="webHttpBinding" bindingConfiguration="WebHttpBinding" contract="Commerce.ICatalogue"/>
</client>
<services>
<service behaviorConfiguration="ServiceBehavior" name="Catalogue">
<endpoint address=""
behaviorConfiguration="RestFull"
binding="webHttpBinding"
bindingConfiguration="WebHttpBinding"
contract="Commerce.ICatalogue" />
<!-- endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/-->
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="RestFull">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true"/>
<serviceMetadata httpGetEnabled="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Gracias de antemano por cualquier ayuda que conduce a la llamada exitosa con> 65K XML; -)
Estaba teniendo el mismo problema y pensé que podría ser la fábrica, gracias por confirmar esto para mí. – Alex
Votación a favor porque este comportamiento es realmente poco claro y la conclusión de que ServiceRoutes no utiliza enlaces de Web.Config no parece estar documentada en ninguna parte, pero definitivamente parece ser el caso. –