我正在通过经典的asmx Web服务传输大型压缩文本文件。 我这样做的原因是文件的大小是20 MB解压缩,4MB压缩。
这是方法。如有必要,我会提供更多信息。
[WebMethod]
public byte[] Transfer()
{
return File.ReadAllBytes(@"4MBFile.zip");
}
我正在使用C#和.NET 4.(我将项目的初始设置从2.0更改为4.0)。
webmethod使用一种序列化,所以我猜会有一些开销。
我真的只转移4MB吗? 如果有任何问题,我如何衡量这种开销?
答案 0 :(得分:3)
XML Web Services通过标准Web协议向Web用户公开有用的功能。在大多数情况下,使用的协议是SOAP。
This question表明,ASMX Web服务使用的XmlSerializer默认使用Base64编码二进制数据,因此,开销将是显而易见的。
我真的只转移了4MB吗?
是什么让您无法使用Fiddler监控服务电话?它会告诉确切的HTTP响应体大小。
seems to be a solution将属性归为hexBinary,因此不会进行Base64编码。