wcf教程-传递数据过大怎么配置?读取 XML 数据时,超出最大字符串内容长度配额 (8192)
来源:互联网 发布:程序员在银行干什么 编辑:程序博客网 时间:2024/05/29 12:33
昨天测试客户端程序与服务端wcf时,出现一个错误:
读取 XML 数据时,超出最大字符串内容长度配额 (8192)。通过更改在创建 XML 读取器时所使用的 XmlDictionaryReaderQuotas 对象的 MaxStringContentLength 属性,可增加此配额。
在wcf中其实已经配置了传递数据的大小了:maxReceivedMessageSize 获取或设置配置了此绑定的通道上可以接收的消息的最大大小。
basicHttpBinding等预定义的绑定一般具有MaxReceivedMessageSize属性,CustomBinding则需要在Transport中定义。
<binding name="TcpBindingConfig" maxBufferPoolSize="655360000000" maxBufferSize="655360000" maxReceivedMessageSize="655360000000" transferMode="Streamed">
还报上面的错误,是因为传输的数据是字符串的问题。
从网上找了一下,发现都是动态配置的。整理一下:
1、在web.config中配置:
在bingding中增加一项:
<bindings> <netTcpBinding> <binding name="TcpBindingConfig" maxBufferPoolSize="655360000000" maxBufferSize="655360000" maxReceivedMessageSize="655360000000" transferMode="Streamed"> <readerQuotas maxDepth="32" maxStringContentLength="655360000" maxArrayLength="655360000" maxBytesPerRead="655360000" maxNameTableCharCount="655360000" /> <security mode="None" /> </binding> </netTcpBinding> <basicHttpBinding> <binding name="BasicHttpBindingConfig" maxBufferPoolSize="655360000000" maxBufferSize="655360000" maxReceivedMessageSize="655360000000" sendTimeout="00:02:00" transferMode="Streamed"> <readerQuotas maxDepth="32" maxStringContentLength="655360000" maxArrayLength="655360000" maxBytesPerRead="655360000" maxNameTableCharCount="655360000" /> <security mode="None"/> </binding> </basicHttpBinding> </bindings>
ReaderQuotas:获取或设置可由配置了此绑定的终结点处理的 SOAP 消息的复杂性约束。
该属性是XmlDictionaryReaderQuotasElement类型,一般需要设置该属性的MaxArrayLength、MaxStringContentLength及MaxDepth属性。
MaxItemsInObjectGraph:获取对象图中要序列化或反序列化的最大项数。
该属性属于DataContractSerializer类,需要在serviceBehaviors下的behavior节中配置。
2、在后台C#修改:ServiceClient service = new ServiceClient(); (service.Endpoint.Binding as NetTcpBinding).MaxReceivedMessageSize = int.MaxValue;(service.Endpoint.Binding as NetTcpBinding).MaxBufferPoolSize = int.MaxValue;(service.Endpoint.Binding as NetTcpBinding).MaxBufferSize = int.MaxValue; 发送大数据:在WCF服务端解决 NetTcpBinding binding = new NetTcpBinding(); binding.MaxReceivedMessageSize= 2147483647(更改这个数字) ;接受大数据:在WCF客户端解决 NetTcpBinding binding = new NetTcpBinding(); binding.ReaderQuotas = new XmlDictionaryReaderQuotas() { MaxStringContentLength = 2147483647(更改这个数字) };
0 0
- wcf教程-传递数据过大怎么配置?读取 XML 数据时,超出最大字符串内容长度配额 (8192)
- 读取 XML 数据时,超出最大字符串内容长度配额 (8192)。
- 读取 XML 数据时,超出最大字符串内容长度配额 (8192)
- InnerException 消息是“反序列化对象 属于类型 *** 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。(注意细节)
- WCF 上传大数据时 报错 读取 XML 数据时,超出最大数组长度配额(16384)
- 【C#】解决进行反序列化时出错:。InnerException 消息是“反序列化对象 属于类型 System.String 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。
- 读取XML数据时,已超过最大字符串内容长度配额(8192)。可以通过更改创建XML阅读器时使用的XmlDictionaryReaderQuotas对象上的MaxStringContentLength属
- 读取 XML 数据时,超出最大名称表字符计数配额 (16384)。
- 使用web服务时,超出最大字符串内容长度配额 (8192)。通过更改在创建 XML 读取器时所使用的 XmlDictionaryReaderQuotas 对象的 MaxStringContentLen
- 解决VS更新/增加服务引用出现“XML 文档中有错误。 读取 XML 数据时,超出最大名称表字符计数配额 (16384)”
- IIS中 传递json配置数据最大长度
- 根据字段内容长度读取数据
- Silverlight在调用wcf时传输数据过大的解决办法
- net.tcp WCF引用出错 “超出最大名称表字符计数配额(16384)”
- GET与POST传递数据的最大长度限制
- GET与POST传递数据的最大长度限制
- Android BLE中传输数据的最大长度怎么破
- Android BLE中传输数据的最大长度怎么破
- 九九乘法表----java
- 数据库数据泵导出之前的完美数据量统计
- 数据库的扩容
- java双端链表
- 对mini2440存储器的理解和使用
- wcf教程-传递数据过大怎么配置?读取 XML 数据时,超出最大字符串内容长度配额 (8192)
- Java IO操作——掌握压缩流的使用(ZipOutputStream、ZipFile、ZipInputStream)[java.util包中]
- linux系统maven安装
- yum命令
- 根据日期判断星期几
- 如何让你的网站/应用/app满足大规模并发?
- TCPIP校验值的优化
- hdoj5806【尺取】
- NSDictionary writeToFile:atomically: 时失败