编程语言
首页 > 编程语言> > c#-通过asmx Web服务的大型二进制文件

c#-通过asmx Web服务的大型二进制文件

作者:互联网

我正在通过经典的asmx网络服务传输大型的压缩文本文件.
我这样做的原因是该文件的大小为未压缩的20 MB,已压缩的4 MB.

这就是方法.如有必要,我将提供其他信息.

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

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

一个网络方法使用一种序列化,所以我想将会有一些开销.

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

解决方法:

XML Web Services expose useful functionality to Web users through a standard Web protocol. In most cases, the protocol used is SOAP.

This question表明,默认情况下,ASMX Web服务使用的XmlSerializer对Base64编码二进制数据,因此,开销非常明显.

Am I really transfering only 4MB?

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

通过将属性归为hexBinary出现seems to be a solution,因此不会进行Base64编码.

标签:webmethod,serialization,asmx,web-services,c
来源: https://codeday.me/bug/20191127/2075144.html