我可以轻松检索大量数据,但将其发送回服务会显示此错误。我尝试将元素添加到 web.config 和 servicereferences.clientconfig 中,但两者都无法识别。有一次,我收到一条关于将 readerQuotas 添加到 bindingElementExtensions 的消息,但我找不到任何有用的信息。我发现帖子说我必须修改 devenv.exe.config 等,但是这样做会影响 VS。
编辑
这是 web.config 的绑定(bind)部分:
<bindings>
<customBinding>
<binding name="QaRiM.Web.Service1.customBinding0">
<binaryMessageEncoding />
<httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
</binding>
</customBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
<services>
<service name="QaRiM.Web.Service1">
<endpoint address="" binding="customBinding" bindingConfiguration="QaRiM.Web.Service1.customBinding0"
contract="QaRiM.Web.Service1" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
和 servicereferences.clientconfig:
<configuration>
<system.serviceModel>
<bindings>
<customBinding>
<binding name="CustomBinding_Service1">
<binaryMessageEncoding />
<httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="http://localhost:36533/Service1.svc" binding="customBinding"
bindingConfiguration="CustomBinding_Service1" contract="ServiceReference1.Service1"
name="CustomBinding_Service1" />
</client>
</system.serviceModel>
</configuration>
两者都是由 VS 生成的。
最佳答案
您只是缺少 maximum string content length 的配置.
将此添加到您的绑定(bind)属性(客户端和服务器)
<readerQuotas maxStringContentLength="2147483647" />
抱歉,我没有意识到这个子元素位于使用自定义绑定(bind)时使用的编码下,它似乎是
binaryMessageEncoding
在你的例子中。如果没有,请尝试使用该设置的其他编码。<bindings>
<customBinding>
<binding name="QaRiM.Web.Service1.customBinding0">
<binaryMessageEncoding>
<readerQuotas maxStringContentLength="2147483647"/>
</binaryMessageEncoding>
</binding>
</customBinding>
</bindings>
关于silverlight - WCF 和 Silverlight 4 的另一个 "The maximum string content length quota (8192) has been exceeded while reading XML data."问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3866929/