解决:.NET进行反序列化时出错:。InnerException 消息是“反序列化对象 属于类型 System.String 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。通过更改在创建 XML 读取器时所使用的 XmlDictionaryReaderQuotas 对象的 MaxStringContentLength 属性,可增加此配额。 第 137 行,位置为 76。”。有关详细信息,请参阅 InnerException。的错误。
我服务器端是用的webservice 客户端:winform
在网上搜了一大堆,都是改maxReceivedMessageSize、maxStringContentLength,但是都不知道怎么改,一开始以为改webservice的web.config 后来才发现是该winform中的app.config。真是 绕了一个大弯啊。
具体步骤:
在你的<system.serviceModel>中的<bindings>节点的<binding>节点中添加如下语句 即可:
<readerQuotas maxDepth="32" maxStringContentLength="10485760" maxArrayLength="10485760" maxBytesPerRead="10485760" maxNameTableCharCount="10485760"/>
即:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="Service1Soap" maxReceivedMessageSize="10485760">
<readerQuotas maxDepth="32" maxStringContentLength="10485760" maxArrayLength="10485760" maxBytesPerRead="10485760" maxNameTableCharCount="10485760"/>
</binding>
然后就可以了。
其中的maxReceiveMessageSize是表示你接受文件的最大值。 maxStringContentLength表示接受字符串的最大值。单位都是KB
By Jim