WCF流4K块!

问题描述:

我的WCF项目采用MTOMMaxBytesPerRead设置为32K(客户端和服务器),但是当我运行WCF流4K块!

read = fs.read(buffer, 0, buffer.length) 

它不会让我读超过4096个字节(4k)(32K缓冲区没有填满 - 填充0)

有没有什么办法可以让我的数兆字节文件大于4K的分块(请说是)?

+1

你相信你有一个性能问题,或者你真的测量过吗? read()只返回4K,并没有告诉网络上的数据包大小,延迟或吞吐量。 read()和网络之间有很多缓冲区和层。 – Codo 2011-03-01 17:45:35

+0

@Codo:同意,但很高兴知道为什么32K缓冲区不工作... 4K看起来真的很小。 – 2011-03-01 17:46:47

+2

这可能会提供一些见解:http://*.com/questions/451376/file-download-through-wcf-slower-than-through-iis – 2011-03-01 19:46:54

4096是FileStream上的读取缓冲区的默认大小,我假设您正在返回。我不确定4k限制如何影响你,但你的选择是将整个文件读入MemoryStream并以此方式发送。