【问题标题】:Large request when sending TIFF image via SOAP通过 SOAP 发送 TIFF 图像时的大请求
【发布时间】:2009-02-18 14:08:45
【问题描述】:
我们有一个带有上传图片方法的 WebService,这个方法接受一个字节数组,它是一个 TIFF。
在客户端,TIFF 使用Image.FromFile(path) 加载,然后保存到MemoryStream。然后调用memoryStream.ToArray() 生成一个字节数组,用于WebService 请求。
目前我们有一个 130 KB 大的 TIFF,但总请求大小几乎是 10 MB。这怎么可能发生?这是因为 Image.FromFile 方法将 TIFF 转换(放气)为标准格式,所以压缩等丢失了吗?有没有更好的方法来做到这一点?
谢谢。
【问题讨论】:
标签:
.net
performance
web-services
soap
【解决方案1】:
将 tiff 加载到图像中确实会删除 TIFF 的所有压缩。
如果您真的不需要将其加载到图像中,我只需将其作为任意文件读入内存并以这种方式发送字节数组。
【解决方案2】:
我尚未验证您的建议(Image 正在将 tiff 解压缩成一个更大的文件)实际上正在发生,尽管它看起来很可能。但是,如果是这样的话,那你就不能不以图像的形式读入文件,而是以二进制的形式读入吗?
只需像二进制文件一样读取文件,然后将其放入 memoryStream 中。那么解压应该没有问题。
【解决方案3】:
也许你可以使用 WSE 3.0 MTOM,witch 是通过网络服务发送图像的最佳方式
您可以找到更多信息here