我应该何时考虑更改服务的退货类型?

时间:2011-09-19 19:59:24

标签: asp.net wcf .net-4.0

我们有一个WCF服务,它从SQL Server数据库返回一个字节数组。此字节数组通常表示报告,但将来可能是Word或Excel文档。目前,返回的文件大约是300K,但有些接近900K。未来的办公文档将属于类似的大小范围。

我们应该在什么时候考虑更改返回类型或者是一个byte []就好了?问题的第二部分是,如果我们应该改变它,我们应该把它变成什么?我们应该考虑流媒体还是不适合这种类型的文件?

2 个答案:

答案 0 :(得分:1)

如果您使用此WCF服务将数据从服务器下载到客户端(如Web浏览器),则流式传输可能是一个好主意,因此链中的任何位置都不会立即在内存中分配整个数据块。 / p>

请参阅此处获取大量文档以及有关此主题的示例:How to: Enable Streaming

如果您已经从某些方法提供byte[]作为回报,我还建议不要破坏ServiceContract,强制所有客户端都被重写不是一个好习惯,只需并排添加新方法,如果可能和方便。

答案 1 :(得分:1)

我会仔细查看您的WCF服务的性能,使用分析器或通过压力测试。我不会改变它,直到它变得必要,但你不是太远了。

要传输数据,您可以更改合同以返回Stream(或实施新合同以避免破坏现有合同),并将传输模式设置为流式传输。有一个非常好的优点和缺点的记录,以及所有这些here的方法。

相关问题