使用Web服务下载大文件(大约400mb)时遇到问题。 今天我们有一个asmx web服务(使用soap协议)来获取这个文件(返回一个byte [])和一个使用这个web服务引用的windows服务来下载文件。如果文件大小很大,它会消耗大量的RAM MEMORY(几乎所有可用的计算机内存)。 我想知道什么是通过Windows服务下载文件的更好方法,而不会消耗大量内存。
答案 0 :(得分:1)
根据您的文件,您可以通过内置压缩获得非常好的结果,以减少文件大小,从而减少您的问题。检查EnableDecompression
类的SoapHttpClientProtocol
属性,该类可以在客户端上进行子类化,并使用IIS提供的压缩功能。这种方法可以消除对任何其他修改的需要。几百兆不应该是一个大问题,或者你的应用消耗更多?
编辑:在仔细阅读您的问题后,我发现您正在寻找一种完全相同的文件方式。在这种情况下,它可能是最简单的方法,只需通过http / ftp公开文件,并使您的Windows服务下载WebClient
类
答案 1 :(得分:0)
您可以使用MTOM进行大型文件转换。