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