Размер bytearray, полученного клиентом, отличается от размера, отправленного из службы WCF
У меня есть собственная служба WCF которая читает большой RAR файл с помощью binaryreader и возвращает bytearray клиенту
Сервис разбиения файла на части и 10 МБ на части( 10485860 байт)
Я проверял в режиме отладки для размера ByteArray в службу WCF, прежде чем вернуться и увидеть 10485860 байт. Так что это истинный размер.
Но клиент получил 13981237 байт на части, почему такая разница.
Это делает мой файл поврежденным, когда я создаю файл на стороне клиента с полученными байтами
Это мой код от WCF
Dim my_InStream As System.IO.FileStream = Nothing Try 'Dim i As Integer = 0 my_InStream = New System.IO.FileStream(File, FileMode.Open, FileAccess.Read, FileShare.Read) Dim my_ibinaryreader As System.IO.BinaryReader = New System.IO.BinaryReader(my_InStream) Dim my_splitArr As New ArrayList 'Dim ofile As FileInfo = New FileInfo(File) Dim ofilesize As Long = my_ibinaryreader.BaseStream.Length Dim partcount As Integer = ofilesize \ 104857600 If ofilesize Mod 104857600 <> 0 Then partcount += 1 my_ibinaryreader.BaseStream.Position = currentPartNumber * 104857600 Dim myblocksize As Long = 0 Dim my_bytearray() As Byte If currentPartNumber = partcount - 1 Then myblocksize = ofilesize - (currentPartNumber * 104857600) Else myblocksize = 104857600 End If my_bytearray = my_ibinaryreader.ReadBytes(myblocksize) my_ibinaryreader.Close() my_InStream.Close() Return my_bytearray Catch ex As Exception my_InStream.Close() Return Nothing End Try
Что я уже пробовал:
Я пытался получить файл как одну часть (420 МБ), но все равно получал другой размер данных и файл был поврежден на стороне клиента