GZipStream через веб-сервис .NET вызывает проблему с недопустимыми символами

#web-services #gzipstream

#веб-сервисы #gzipstream

Вопрос:

Я работаю над сложной настройкой архитектуры клиент-сервера .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
  

Любая идея исправить эту проблему, учитывая тот факт, что я могу изменить механизм обработки запросов / ответов, действительно ценится. Кроме того, я также запрашиваю любые идеи о лучших способах обработки передачи больших наборов данных через веб-сервис. Спасибо.