silverlight - WCF 和 Silverlight 4 的另一个 "The maximum string content length quota (8192) has been exceeded while reading XML data."问题

标签 silverlight wcf

我可以轻松检索大量数据,但将其发送回服务会显示此错误。我尝试将元素添加到 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/

相关文章:

silverlight - SL4/WCF 不适用于 HTTPS

c# - 如何测量工作流消耗的处理器时间百分比和总内存?

c# - WCF 服务引用 - 重用类型时未生成代理

.net - 在控制台应用程序中托管 WCF 服务时出现 IMetadataExchange MEX 端点错误

c# - 如何以阻塞/同步方式下载文件?

Silverlight 4 工具包、图表和 lineSeries 为空

c# - 是否有适用于 Silverlight 的 C# 动态模拟框架?

asp.net - RIA 与 ASP.NET

wcf - 从另一台机器使用 WCF 自托管服务

wcf - 如何: Responsive available Wcf duplex communication