我有一个接受JSON字符串的WCF REST服务

其中一个参数是大数字字符串

这会导致以下错误 - 通过跟踪和使用SVC跟踪查看器可见

有一个错误的错误对象的错误。读取XML数据时,已超过了最大字符串内容长度(8192)。通过更改创建XML读取器时使用的XmldictionareReaderQuotas对象上的MaxStringContentLength属性,可以增加该配额。

现在,我已经阅读了各种文章,建议如何纠正这一点

所有这些都建议在服务器和客户端上增加各种配置设置

例如错误序列化字符串在网络服务调用中

http://bloggingabout.net/blogs/ramon/archive/2008/08/20/wcf-and-large-messages.aspx

http://social.msdn.microsoft.com/forums/en/wcf/thread/f570823a-8581-45ba-8bba-8b0b-ab0c7d7d7fcae1

所以我的配置文件看起来像这样

 <webHttpBinding>
        <binding name="webBinding" maxBufferSize="5242880"  maxReceivedMessageSize="5242880" >
          <readerQuotas  maxDepth="5242880" maxStringContentLength="5242880" maxArrayLength="5242880" maxBytesPerRead="5242880" maxNameTableCharCount="5242880"/>
        </binding>
   </webHttpBinding>
...
...
...
<endpoint 
      address="/"
      binding="webHttpBinding"
      bindingConfiguration="webBinding"

我的问题是我可以在服务器上更改此信息,但是客户端上没有WCF配置设置作为其REST服务,我只是使用The HTTP请求进行HTTP请求 WebClient 目的

有任何想法吗?

有帮助吗?

解决方案

因此,事实证明您需要在端点地址上一个完全合格的URL,而不是相对的URL

错误使用JSON调用WCF REST服务。长度配额(8192)超过

其他提示

该错误不会在客户端上发生,因为读取器配额仅是WCF的事情,并且网络客户/httpwebrequest不会自己进行挑战或执行任何其他类型的配额。

因此,我会说您可能将配置放在错误的位置,并且没有被捡起。

要么...您不是在客户端手动使用WCF数据合同序列化器之一,是吗?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top