【问题标题】:WCF streams in 4K chunks!WCF 流式传输 4K 块!
【发布时间】:2011-03-12 14:45:18
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你只是相信你有性能问题,还是你真的测量过? read() 当时只返回 4K 并不能说明网络上的数据包大小、延迟或吞吐量。您的 read() 和网络之间有许多缓冲区和层。
  • @Codo:同意,但很高兴知道为什么 32K 缓冲区不起作用……4K 看起来真的很小。
  • 这可能会提供一些见解:stackoverflow.com/questions/451376/…

标签: wcf streaming


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2010-09-24
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多