我调用了WCF服务并尝试从Windows 7中的数据库中获取数据。 我收到了这个错误。
为操作反序列化回复消息正文时出错 'GetProductXml'。最大字符串内容长度配额(8192)具有 读取XML数据时已被超出。这个配额可能会增加 更改了MaxStringContentLength属性 创建XML阅读器时使用的XmlDictionaryReaderQuotas对象。 第13行,第197位。
我尝试在WCF服务的网络配置中将MaxStringContentLength
属性更改为2147483647
,但我得到了相同的上述错误....
答案 0 :(得分:2)
您需要在Windows 7应用程序中添加服务引用时创建的client.config文件中更改它。
答案 1 :(得分:0)
您可以通过在WCF服务web.config中以及客户端web.config中添加以下设置来解决此错误:
<basichttpBinding>
<binding>
<readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="64" maxNameTableCharCount="2147483647" />
</binding>
</basichttpBinding>
注意:假设您正在使用BasicHttpBinding。如果使用不同的绑定,请确保为该绑定添加readerQuotas。
如果您通过代码托管WCF服务,然后您想通过代码添加阅读器配额,请参阅以下内容:
var binding = new BasicHttpBinding();
var myReaderQuotas = new XmlDictionaryReaderQuotas();
myReaderQuotas.MaxStringContentLength = 5242880;
binding.GetType().GetProperty("ReaderQuotas").SetValue(binding, myReaderQuotas, null);