我试图通过WCF接收XML大型对象。如果我设置maxStringContentLength={Default value}
,它就无效。
只有当我增加maxStringContentLength
但它会降低性能时,它才有效。
在不增加maxStringContentLength
的情况下,是否有解决此问题的方法?
答案 0 :(得分:1)
简短回答是否(对于缓冲消息)。如果需要接收大型字符串数据,则需要增加reader quotas。您应该根据要允许的最大数据量来适当地设置它们。
答案 1 :(得分:1)
这是大多数WCF环境的代码味道。如果要发送大量XML,这通常意味着您没有使用DataContract来发送对象。
您还注意到要使用流式传输。如果是这种情况,则读者配额不应该起作用,因为您传递的是一个包含您的数据而没有数据合同的流。
如果您正在使用缓冲区,那么您可以增加ReaderQuotas的大小,但这会损失内存。请记住,这些缓冲区是为您可以同时处理的每个传入WCF调用建立的,因此您可能会遇到麻烦。