Утечки памяти WCF при передаче больших файлов - PullRequest
0 голосов
/ 23 октября 2018

Моя служба 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 голосов
/ 24 октября 2018

Для передачи больших файлов между сервером и клиентом мы используем кодировку 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/

...