我不得不在 XML 文件中存储一些非常大的字符串。现在我想使用 a 压缩字符串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()
从客户端调用方法时,它会抛出:
mscorlib.dll 中发生“System.ServiceModel.CommunicationException”类型的未处理异常附加信息:接收对 XXX.XXX.XXX.XXX 的 HTTP 响应时发生错误。这可能是由于服务端点绑定未使用 HTTP 协议。这也可能是由于服务器中止了 HTTP 请求上下文(可能是由于服务关闭)。有关更多详细信息,请参阅服务器日志。