WCF服务错误反序列化对象

时间:2011-10-26 08:27:47

标签: .net wcf

我有一个WCF Web服务,当前正在接受字符串的JSON对象,其中一个键/值对包含一个Base 64编码的图像二进制数据字符串。

当Web服务收到请求时,它会抛出以下错误:

  

异常消息是'反序列化类型对象时出错。读取XML数据时已超出最大字符串内容长度配额(8192)。

我已经按照其他人建议的一些解决方案,我的Web.Config现在有了自定义绑定:

 <bindings>
   <webHttpBinding>
     <binding name="LongWebHttpBinding" 
          maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
       <readerQuotas maxDepth="32"
           maxStringContentLength="2147483647"
           maxArrayLength="2147483647"
           maxBytesPerRead="2147483647"
           maxNameTableCharCount="2147483647" />
     </binding>
   </webHttpBinding>
 </bindings>

端点配置如下:

 <services>
   <service name="GenericService">
     <endpoint address=""
               behaviorConfiguration="jsonBehavior"
               binding="webHttpBinding" bindingConfiguration="LongWebHttpBinding"
               contract="IGenericService" />               
   </service>    
 </services>

根据所有其他建议设置bindingConfiguration应解决我收到的错误消息。

我可以采取进一步的措施来解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

如果您在新设置后仍遇到问题,则可能需要调整您定义的jsonBehavior的maxItemsInObjectGraph部分中的<dataContractSerializer>属性。

dataContractSerializer

但是,我相信如果这是异常会告诉你的问题 - 不确定,因为我从来没有调整过maxReceivedMessageSize或maxStringContentLength以外的任何东西。

答案 1 :(得分:0)

作为Ladislav Mrnka,问题是在Web.Config中输入时,我没有使用该服务的完整命名空间。

一旦我添加完整的命名空间,它似乎正常工作。

感谢您的帮助