3

我正在连接到基于 WCF 的 Web 服务。对于某些方法,输入包含对象/结构的列表。当此列表中的项目数增加超过一定数量时,HTTP/1.1 400 Bad Request当我尝试使用 SOAPUI 测试该服务时,该服务将失败。我尝试使用以下更改更改 web.config 文件:

<httpRuntime maxRequestLength="2097151" />

   <binding name="basicHTTP" closeTimeout="00:01:00"
        openTimeout="00:01:00" receiveTimeout="00:01:00" sendTimeout="00:01:00" maxReceivedMessageSize="4194304" maxBufferSize="98547" maxBufferPoolSize="258547">
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
   </binding>
4

2 回答 2

3

通过设置解决了这个问题maxReceivedMessageSize。最初在我的绑定中,我没有bindingConfiguration明确设置,尽管basicHttpBinding声明并设置了。

由于没有应用绑定中的此类更改,maxReceivedMessageSize并且 64kb 的默认设置处于活动状态。我设置了如下绑定:

<endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHttpBinding"
 name="AMS" bindingName="basicHttpBinding" contract="Entity.AccuchekMobility.Service.IAccuchekMobilityService" />

   <binding name="basicHttpBinding" closeTimeout="00:01:00"
        openTimeout="00:01:00" receiveTimeout="00:02:00" sendTimeout="00:01:00" maxReceivedMessageSize="4194304" maxBufferPoolSize="524288" maxBufferSize="4194304">
于 2010-09-10T06:42:16.683 回答
2

请注意 maxReceivedMessageSize 以字节为单位,而 maxRequestLength 以千字节为单位。同样对于缓冲传输,将缓冲区大小设置为与最大消息大小相同的值。失败的输入有多大?

于 2010-09-03T14:09:06.637 回答