3

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

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

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

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

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

我真的只传输 4MB 吗?如果有的话,我如何衡量这个开销?

4

1 回答 1

3

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

这个问题表明 ASMX Web 服务使用的 XmlSerializer 默认情况下对二进制数据进行 Base64 编码,所以是的,开销会很明显。

我真的只传输 4MB 吗?

是什么让您无法使用Fiddler监控服务调用?它将告诉确切的 HTTP 响应正文大小。

通过将属性归属为hexBinary似乎有一个解决方案,因此它不会是 Base64 编码的。

于 2012-10-03T12:15:22.287 回答