WCF以4K块形式传输!

rom*_*rom 5 streaming wcf

我的WCF项目使用Mtom和流,并将MaxBytesPerRead设置为32K(在客户端和服务器上),但是当我运行时

read = fs.read(buffer, 0, buffer.length)
Run Code Online (Sandbox Code Playgroud)

它不允许我一次读取超过4096字节(4k)(32K缓冲区没有填满 - 它用零填充)

有没有什么办法可以在大于4K的块中流式传输我的多兆字节文件(请说是)?

sco*_*udy 2

4096 是 a 上读取缓冲区的默认大小FileStream,我认为这就是您返回的值。我不太确定 4k 限制对您有何影响,但您的替代方案是将整个文件读入 MemoryStream 并以这种方式发送。