大文件传输时WCF内存泄漏

时间:2018-10-23 14:31:24

标签: wcf memory file-transfer

我的WCF服务传输大文件(200Mo),并且我看到内存使用量不断增长(1Go,2Go ... 8Go)。这是Visual Studio快照提供的内存:

Object                      Number    Size (Bytes)
BufferManagerOutputStream   3         266 668 448
...

这里是服务配置:

BasicHttpBinding httpb = new BasicHttpBinding();
httpb.MaxReceivedMessageSize = int.MaxValue;
httpb.MaxBufferPoolSize = 0;

您对调查和解决有任何想法吗?

1 个答案:

答案 0 :(得分:0)

对于服务器和客户端之间的大型文件传输,我们使用MTOM编码来减少开销。您还可以在服务合同上实现IDisposable接口来管理内存。 我认为内存不会因WCF I / O传输而泄漏。我建议您可以使用VS2017诊断工具检查数据对象在哪里增加。  enter image description here 您可以参考以下文档。
https://docs.microsoft.com/en-us/visualstudio/profiling/memory-usage?view=vs-2017
https://blogs.msdn.microsoft.com/visualstudio/2016/02/15/analyze-cpu-memory-while-debugging/