我有一个自托管WCF服务,该服务正在使用BinaryReader读取大文件并将字节数组返回给客户端
服务拆分文件为部分,每部分10MB(10485860字节)
但是客户每部分收到13981237字节,为什么会有这种差异。
这使我的文件损坏了
这是我来自WCF的代码
typeDescriptor.AddAttributes
这是我的客户代码
TypeDescriptor.AddAttributes(this.button1, new DesignerAttribute(typeof(object)));
这是我的WCF服务完整代码
myblocksize = 10485860
my_bytearray = my_ibinaryreader.ReadBytes(myblocksize)
my_ibinaryreader.Close()
Return my_bytearray
答案 0 :(得分:-1)
@AlessandroMandelli使用以下代码将字节数组写入文件
首先从WCF获取文件大小(例如:425000000字节-435 MB)
并使用filesize \ 104857600计算零件数(43个零件示例)
并使用for语句获取所有部分
在WCF中按当前部分查找* 104857600
请检查以下代码
dim myfileStream as filestream = new Filestream ("C:\aa.rar", filemode.create)
dim partcount as integer = filesize \ 104857600
dim myWebClient as new WebClient
for i as integer = 0 to partcount -1
bytearray = myWebClient.DownloadData("SERVICEURL?file=bla.rar¤tPartNumber=myPartNumber")
if not isnothing(byteArray) then
myfileStream.Write(byteArray, 0 , byteArray.length)
endif
next