asmx web服务上的大型二进制文件

时间:2012-10-03 12:04:13

标签: c# web-services serialization asmx webmethod

我正在通过经典的asmx Web服务传输大型压缩文本文件。 我这样做的原因是文件的大小是20 MB解压缩,4MB压缩。

这是方法。如有必要,我会提供更多信息。

    [WebMethod]
    public byte[] Transfer()
    {
        return File.ReadAllBytes(@"4MBFile.zip");
    }

我正在使用C#和.NET 4.(我将项目的初始设置从2.0更改为4.0)。

webmethod使用一种序列化,所以我猜会有一些开销。

我真的只转移4MB吗? 如果有任何问题,我如何衡量这种开销?

1 个答案:

答案 0 :(得分:3)

  

XML Web Services通过标准Web协议向Web用户公开有用的功能。在大多数情况下,使用的协议是SOAP。

This question表明,ASMX Web服务使用的XmlSerializer默认使用Base64编码二进制数据,因此,开销将是显而易见的。

  

我真的只转移了4MB吗?

是什么让您无法使用Fiddler监控服务电话?它会告诉确切的HTTP响应体大小。

seems to be a solution将属性归为hexBinary,因此不会进行Base64编码。