使用WCF接收大对象

时间:2011-10-18 05:31:09

标签: c# .net asp.net wcf wcf-streaming

我试图通过WCF接收XML大型对象。如果我设置maxStringContentLength={Default value},它就无效。

只有当我增加maxStringContentLength但它会降低性能时,它才有效。

在不增加maxStringContentLength的情况下,是否有解决此问题的方法?

2 个答案:

答案 0 :(得分:1)

简短回答是(对于缓冲消息)。如果需要接收大型字符串数据,则需要增加reader quotas。您应该根据要允许的最大数据量来适当地设置它们。

答案 1 :(得分:1)

这是大多数WCF环境的代码味道。如果要发送大量XML,这通常意味着您没有使用DataContract来发送对象。

您还注意到要使用流式传输。如果是这种情况,则读者配额不应该起作用,因为您传递的是一个包含您的数据而没有数据合同的流。

如果您正在使用缓冲区,那么您可以增加ReaderQuotas的大小,但这会损失内存。请记住,这些缓冲区是为您可以同时处理的每个传入WCF调用建立的,因此您可能会遇到麻烦。