0

将实体对象传递给 WebService 时出现以下错误

读取 XML 数据时已超出最大字符串内容长度配额 (8192)。可以通过更改创建 XML 阅读器时使用的 XmlDictionaryReaderQuotas 对象的 MaxStringContentLength 属性来增加此配额

我试图通过在Webservice的webconfig中给出以下代码来解决这个问题,但错误仍然存​​在。任何人都可以帮助!!!!

 <bindings>
      <wsHttpBinding>
        <binding name="MyService" maxReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
                    maxArrayLength="2147483647" maxBytesPerRead="2147483647"
                   maxNameTableCharCount="2147483647" />
          <security mode="TransportWithMessageCredential">
            <transport clientCredentialType="None" />
            <message clientCredentialType="UserName" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
4

2 回答 2

3

您必须在服务器和客户端上设置最大字符串内容长度配额。所以检查你的客户端配置。如果这不起作用,请检查您是否使用了正确的绑定。

于 2013-04-02T12:51:46.733 回答
0

您的服务器端 Web 配置允许使用大字符串,但您还需要修改客户端 ServiceReferences.ClientConfig 文件以反映这一点。

<configuration>
  <system.serviceModel>
    <bindings>
        <wsHttpBinding>
            <binding name="Binding_MyService">
                <binaryMessageEncoding />
                <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
            </binding>
        </wsHttpBinding>
    </bindings>
    <client>
        <endpoint address="yourserviceurlhere"
            binding="wsHttpBinding" bindingConfiguration="Binding_MyService"
            contract="yourcontracthere" name="MyService" />
    </client>
</system.serviceModel>

于 2013-04-02T12:52:04.563 回答