通过WCF处理大量进口的最佳实践?

时间:2011-01-11 18:58:03

标签: wcf

我在实施时遇到了一些麻烦。一个导入rutine,它解析silverlight客户端上的文件,并使用basicHttpBinding将大量对象发送到WCF服务。

我已将maxBufferSize,maxRecieveSize等设置为最大值,但除非我自己在代码中填充对象集合并进行多次调用,否则它将失败。

所以我想知道你们中是否有人有过使用大量对象进行调用的好方法的经验?

2 个答案:

答案 0 :(得分:2)

Christian,我在使用TransferMode时有一些很好的经历。默认情况下为buffered。 在我的情况下更改为StreamedResponse允许我在没有大量内存消耗的情况下返回大量数据。

更多信息:

  1. http://msdn.microsoft.com/en-us/library/system.servicemodel.transfermode.aspx

  2. http://blogs.msdn.com/b/carlosfigueira/archive/2010/07/08/using-transfermode-streamedresponse-to-download-files-in-silverlight-4.aspx

答案 1 :(得分:2)

同样的事情发生在我的团队......除了我们没有在SL工作,我们在WPF。

我知道这不是最迷人的方式,但我和我的团队在获取文本文件,转换为字节数组然后通过网络发送字节数组方面取得了很大的成功。事实证明,WCF对字节数组非常有效。

要读入文件,我们在客户端上执行此操作:
fileByteArray = File.ReadAllBytes(fileLocation);

然后我们的服务界面如下所示: [ServiceContract]
public class IImport
{
[OperationContract]
BulkResults ImportFromFile(byte[] importFile);
}

我们也尝试过Buffered / Streamed方法,我们已将所有服务转换为Streaming。这也有助于记忆消耗。