WCF服务可以返回Zip流吗?
本文关键字:Zip 流吗 返回 服务 WCF | 更新日期: 2023-09-27 17:54:20
我必须在XML文件中存储一些非常大的字符串。现在我想使用GZipStream
压缩字符串,然后稍后在客户端解压缩它们。WCF服务方法可以返回zip流作为返回类型吗?
这是我的服务方法:
public Stream ZipResponse()
{
byte[] byteArray = null;
GZipStream compressionStream = null;
try
{
var var_details = "XML String Here";
byteArray = Encoding.UTF8.GetBytes(var_details);
MemoryStream stream = new MemoryStream(byteArray);
compressionStream = new GZipStream(stream, CompressionMode.Compress, true);
}
catch (Exception e)
{ }
return compressionStream;
}
现在当我从客户端调用ZipResponse()
方法时,它会抛出:
未处理的System.ServiceModel类型异常。附加信息:在接收到XXX.XXX.XXX.XXX的HTTP响应时发生错误。这可能是由于服务端点绑定没有使用HTTP协议。这也可能是由于服务器终止了HTTP请求上下文(可能是由于服务关闭)。
是的,一个WCF服务方法可以返回一个流到客户端。您应该确保您的传输模式设置为"流式传输";除此之外,它应该是直接的。
你可以在这里得到更多的信息:WCF流媒体教程
是的,看看这篇关于7Zip(LZMA) WCF消息压缩的文章http://geekswithblogs.net/argot/archive/2009/10/27/wcf-message-compression---gzip-7zip.aspx