有关MaxItemsInObjectGraph的WCF最佳实践

时间:2012-01-11 10:31:21

标签: wcf

我过去曾经遇到过几次异常,每次我只是更改配置以允许更大的对象图。

“对象图中可以序列化或反序列化的最大项目数为'65536'。更改对象图或增加MaxItemsInObjectGraph配额。”

然而,我正在和一位同事交谈,他说WCF不应该用来发送大量数据,而是数据应该是一口大小。

那么返回大量数据的普遍共识是什么?

2 个答案:

答案 0 :(得分:1)

我没有任何具体的例子,但this article似乎指向WCF用于大型数据集,我知道人们将它用于图像。

就个人而言,我一直不得不为任何真实世界的数据增加此属性。

答案 1 :(得分:1)

根据我使用同步Web服务操作传输大型数据集或文件的经验会导致许多不同的问题。

首先,您遇到与性能相关的问题 - 服务边界的序列化时间。然后你有可用性问题。传入请求可能会超时等待响应,或者可能会被拒绝,因为没有调度程序线程来处理请求。

将大数据传输和处理委托给某些脱机异步进程要好得多。

例如,在您的情况下,您发送请求,服务会将URI返回到您想要的最终资源。您可能必须等待资源可用,但您可以适当地为您的消费者编码。