从.NET 2.0中的asmx下载大文件

时间:2013-04-21 07:13:57

标签: .net wcf web-services .net-2.0 asmx

我们有一个用 .NET 2.0 编写的客户端(无法更改)。此客户端与使用.NET 4.0编写的Web服务(无WCF,只是简单的asmx)进行通信。 现在我们需要从Web服务中加载相当大的文件( 200 MB )。可以约。 1000个客户端同时连接并下载。 ws方法的当前实现是非常天真。整个文件(顺便说一下是si XML)在内存中作为字符串读取,并返回字符串

稍微更好的方法是将其读作字节数组,如建议的here: 但我认为这仍然是错误的做法。大文件仍将在内存中(乘以base64等)

最好的方法是使用流式传输。我知道WCF能够进行流式传输(例如here),但WCF对我们来说可能是不可能的,因为客户端(.NET 2,0)必须以某种方式使用.NET 3.0的功能(通过使用来自WCF的组件,这可能是令人讨厌的。

还有另一种可能性,如何确保服务器能够为这么大的文件下载服务器?

1 个答案:

答案 0 :(得分:2)

好的,这篇文章可能会有所帮助(我没有对它们进行测试,但看起来很有帮助):

Web services and large content in .NET 2.0

How to: Stream Large Amounts of Data from a Web Service