我正在进行复杂的.NET客户端服务器架构定制,除了可以将我的东西添加到请求/回复对象之外,我绝对无法控制发送或接收的请求/回复。
我在服务器端有一个数据集要发送给客户端,我正在使用GZipStream来压缩数据集。压缩工作正常,但是当在客户端收到回复时,我得到无效的字符异常 - 0x1F。我用谷歌搜索,找不到合适的资源来解决这个问题。
压缩代码:
Private Function Compress(ByVal data() As Byte) As Byte()
Try
'---the ms is used for storing the compressed data---
Dim ms As New MemoryStream()
Dim zipStream As Stream = Nothing
zipStream = New GZipStream(ms, _
CompressionMode.Compress, True)
'---or---
'zipStream = New DeflateStream(ms, _
' CompressionMode.Compress, True)
'---compressing using the info stored in data---
zipStream.Write(data, 0, data.Length)
zipStream.Close()
ms.Position = 0
'---used to store the compressed data (byte array)---
Dim compressed_data(CInt(ms.Length - 1)) As Byte
'---read the content of the memory stream into
' the byte array---
ms.Read(compressed_data, 0, CInt(ms.Length))
Return compressed_data
Catch ex As Exception
Return Nothing
End Try
End Function
考虑到我可以改变请求/响应处理机制的事实,任何想法解决这个问题都非常感激。此外,我还要求有关处理webservice上的大型数据集传输的更好方法的任何想法。谢谢。